VisualBasic Range in Excel sortieren

Anub1s

Lieutenant
Registriert
Aug. 2006
Beiträge
720
Hallo zusammen,

habe mit VBA in Excel gerade erst angenfangen, und komme mit Arrays noch nicht so wirklich klar.
Ich würde gerne einen bestimmten Bereich in ein Array einlesen (Spalten 1-26, Zeile 7-10), das Array dann nach Spalte 26 aufsteigend sortieren, und das sortierte Array in einem neuen Tabellenblatt ausgeben.
Mein Ansatz war bisher folgender:
Code:
results = range(sheet.Cells(7, 1), sheet.Cells(sheetLastRow, 26)).Value
results.Sort key1:=results.Columns(26)
resultSheet.range(resultSheet.Cells(7, 1), resultSheet.Cells(sheetLastRow, 26)).Value = Application.WorksheetFunction.Transpose(results)
Klappt nur leider nicht so, wie ich es gerne hätte, ich bekomme beim sortieren den Aussagekräftigen Fehler "Objekt erforderlich" in der zweiten Zeile.

Würde mich freuen, wenn mir jemand sagen kann was ich falsch mache.

MfG Anub1s
 
Du kannst den Inhalt von results in die gewünschte Tabelle einfügen und dann sortieren.

Ich hab hier mal ein Makro aufgezeichnet:


Code:
    Range("A1:E4").Select
    Range("E4").Activate
    Selection.Copy
    Range("A9").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("Tabelle2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Tabelle2").Sort.SortFields.Add Key:=Range("A9"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Tabelle2").Sort
        .SetRange Range("A9:E12")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
Auf die Idee, Makros aufzuzeichnen und den erzeugten Code zu lesen, bin ich noch gar nicht gekommen, das hat mir sehr weitergeholfen, danke :)
Eine Lösung, direkt das Array zu sortieren habe ich zwar nicht gefunden, aber erst einfügen und dann in-place sortieren reicht in meinem Fall aus.
Wenn ich auf weitere Probleme stoßen sollte, melde ich mich weiter, bisdahin erst mal danke soweit.

MfG Anub1s
 
Zurück
Oben