2016-08-02 17 views
-1

Ich möchte jede Zeile mit Daten von Spalte A bis S in aufsteigender Reihenfolge sortieren, insgesamt 5580 Zeilen. In Zukunft wird sich die Anzahl der Zeilen erhöhen.Excel VBA sortiere mehrere Zeilen

Ich habe versucht, die Sortieraktionen für die ersten 2 Zeilen aufzuzeichnen. Dann versuchte ich, den Code zusammenzufassen, um von der ersten Zeile in die 39. Zeile als Versuch zu sortieren, aber fehlgeschlagen.

Sub Macro4() 

Macro4 Macro 

Rows("13:39").Select 

ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Clear 

ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Add Key:=Range(_ 
    "A13:S39"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ 
    xlSortNormal 

With ActiveWorkbook.Worksheets("Sheet1 (2)").Sort 
    .SetRange Range("A13:S" & Range("A" & Rows.Count).End(xlUp).Row) 
    .Header = xlGuess 
    .MatchCase = False 
    .Orientation = xlLeftToRight 
    .SortMethod = xlPinYin 
    .Apply 

End With 

Rows("14:14").Select 
ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Add Key:=Range(_ 
    "A14:S14"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ 
    xlSortNormal 
With ActiveWorkbook.Worksheets("Sheet1 (2)").Sort 
    .SetRange Range("A14:S14") 
    .Header = xlGuess 
    .MatchCase = False 
    .Orientation = xlLeftToRight 
    .SortMethod = xlPinYin 
    .Apply 
    End With 
End Sub 

Antwort

0

So etwas wäre so, wie ich

For Each rw In Range("a1:E3").Rows 

    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(rw.Address), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
    With ActiveWorkbook.Worksheets("Sheet1").Sort 
     .SetRange Range(rw.Address) 
     .Header = xlGuess 
     .MatchCase = False 
     .Orientation = xlLeftToRight 
     .SortMethod = xlPinYin 
     .Apply 
    End With 

Next rw 
+0

Dank Nathan denken zu gehen, aber es funktioniert nicht ... Muss ich so etwas wie „rw.Address“ ändern müssen? – Yennie

+0

Welchen Code haben Sie versucht? –

Verwandte Themen