2016-06-23 84 views
1

如何在同一時間對多列(鍵/訂單)進行排序?當我運行我的下面的代碼時,它會在執行每行時重新排序數據,而不是在排序中使用多列。將「密鑰」或「訂單」數字從1更改爲2等不起作用。謝謝。VBA Excel變量排序多個鍵/訂單

wsLast_Row = Cells(Rows.Count, 2).End(xlUp).Row 
Range("A3:BZ" & wsLast_Row).Sort key1:=Range("A3:A" & wsLast_Row), _ 
    order1:=xlAscending, Header:=xlNo 
Range("A3:BZ" & wsLast_Row).Sort key1:=Range("B3:B" & wsLast_Row), _ 
    order1:=xlAscending, Header:=xlNo 
Range("A3:BZ" & wsLast_Row).Sort key1:=Range("C3:C" & wsLast_Row), _ 
    order1:=xlAscending, Header:=xlNo 
Range("A3:BZ" & wsLast_Row).Sort key1:=Range("D3:D" & wsLast_Row), _ 
    order1:=xlAscending, Header:=xlNo 
Range("A3:BZ" & wsLast_Row).Sort key1:=Range("F3:F" & wsLast_Row), _ 
    order1:=xlAscending, Header:=xlNo 

回答

2
Sub sdad() 
wsLast_Row = Cells(Rows.Count, 2).End(xlUp).Row 
With ActiveWorkbook.ActiveSheet.Sort 
.SortFields.Clear 
.SortFields.Add Key:=Range("A3:A" & wsLast_Row), Order:=xlAscending 
.SortFields.Add Key:=Range("B3:B" & wsLast_Row), Order:=xlAscending 
.SortFields.Add Key:=Range("C3:C" & wsLast_Row), Order:=xlAscending 
.SortFields.Add Key:=Range("D3:D" & wsLast_Row), Order:=xlAscending 
.SetRange Range("A3:BZ" & wsLast_Row) 
.Header = xlNo 
.Apply 
End With 
End Sub 
+0

我複製你的代碼到我的個子並收到一個錯誤框讀「編譯錯誤:命名參數未找到」「鍵4:=」高亮顯示。 – lindqmx1

+1

從來不知道VBA僅限於3個鍵。請參閱修訂後的答案 –

+0

按預期完美工作,ty @Abe Gold – lindqmx1