2016-04-25 25 views
0

Dies ist der Code eine Reihe von Daten, basierend auf Spalte E für das Sortieren Werteine Reihe von Daten Sortierung

Sub SortByLevel() 

    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("E13:E528" _ 
    ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 

    With ActiveWorkbook.Worksheets("Sheet1").Sort 
     .SetRange Range("A12:L528") 
     .Header = xlYes 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 

End Sub 

Beachten Sie, dass B12:L12 der Bereich des Header ist. Ich habe den Eindruck, dass dies viel einfacher sein kann. Irgendwelche Vorschläge würden sehr geschätzt. Danke, Michael

Antwort

2

Verwendung dieses:

Range("A12:L528").Sort Key1:=Range("E13"), Order1:=xlAscending, Header:=xlYes 
+0

Vielen Dank, es funktioniert gut! Wenn ich fragen darf, wann ich eine benutzerdefinierte Liste habe, z. 'CustomOrder: = "Niedrig, Normal, Hoch"', basierend auf dem ich den gleichen Datenbereich sortieren möchte, wo soll ich es in den Code einbetten, den Sie gepostet haben? Weil ich einen Fehler – GunnRos86

+0

muss benutzerdefinierte Liste hinzufügen, um die Sortieroption wie folgt Zeile 1: ActiveSheet.Sort.SortFields.Add Key: = Bereich ("E13"), CustomOrder: = "Niedrig, Normal, High" Zeile 2 : Bereich ("A12: L528") Sort Key1: = Bereich ("E13"), Order1: = xlAscending, Header: = xlYes –