25. juli 2004 - 13:26Der er
5 kommentarer og 1 løsning
Sortering i sub
Hejsa.
Jeg kan ikke få nedenstående kode til at køre. Jeg får fejlmeldinger i de linier markeret med * under selection.sort. Hvordan *"# får jeg den til at køre? Den del af koden, der giver fejl er optaget med makro. Fedt at Excel ikke fatter sit eget sprog!!!!!
""" Private Sub CommandButton1_Click() Dim selskabsnr, i, t, q As Integer Dim startmd, Rmd, aar As Double Rmd = 0 aar = 1
For i = 1 To 68 selskabsnr = Worksheets("pfsize").Cells(i + 1, 1) 'find selskabets kolonnetal startmd = 25 + (aar * 12) For t = 1 To 12 Rmd = (Worksheets("Afkast").Cells(startmd + t - 1, selskabsnr + 2)) - 1
Sheets("1992s").Activate ActiveSheet.Cells(1, i + 5).Select ActiveCell.FormulaR1C1 = selskabsnr ActiveSheet.Cells(t + 1, i + 5).Select ActiveCell.FormulaR1C1 = Rmd Next t Next i End Sub """"
Jeg håber meget, der er en der vil hjælpe mig, da jeg er temmelig presset.
Det kan også være det kan hjælpe mig, hvis een kan forklare, hvordan man henter værdier fra et ark og ind i et array som man derefter sorterer og spytter ud i et andet ark...
For i = 1 To 68 selskabsnr = Worksheets("pfsize").Cells(i + 1, 1) 'find selskabets kolonnetal startmd = 25 + (aar * 12) For t = 1 To 12 Rmd = (Worksheets("Afkast").Cells(startmd + t - 1, selskabsnr + 2)) - 1
Sheets("1992s").Activate ActiveSheet.Cells(1, i + 5).Select ActiveCell.FormulaR1C1 = selskabsnr ActiveSheet.Cells(t + 1, i + 5).Select ActiveCell.FormulaR1C1 = Rmd Next t Next i End Sub
Sub SortArray() Dim Temp() As Variant, RankArray As Variant, N As Long, i As Integer, j As Integer Dim swap As Boolean, Col As Integer, T As Integer RankArray = Selection ' makeringen på regnearket N = UBound(RankArray) Col = Selection.Columns.Count ReDim Temp(Col) swap = True If Col > 1 Then SortKolonne = InputBox("Sortering på kolonne nr. ( 1 til " & Col & " )") A = Val(SortKolonne) Else A = 1 End If
Do While swap swap = False For i = 1 To N - 1 For j = i To N If RankArray(i, A) > RankArray(j, A) Then For T = 1 To Col Temp(T) = RankArray(i, T) RankArray(i, T) = RankArray(j, T) RankArray(j, T) = Temp(T) Next swap = True End If Next Next Loop Worksheets("ark2").Activate ' arket det skal over i Range(Cells(1, 1), Cells(N, Col)) = RankArray End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.