2016-01-31 36 views
2

我想用4個鍵排序數據庫,但每當我添加第4個鍵時它的名稱參數找不到,而它用這3個鍵排序數據庫..如何添加第4個一個在這.. ??排序數據庫與超過1個鍵在excel vba

Range("A1:E" & lastrow).Sort key1:=Range("A1:A" & lastrow), order1:=xlAscending, _ 
          key2:=Range("C1:C" & lastrow), order2:=xlAscending, _ 
          key3:=Range("D1:D" & lastrow), order3:=xlDescending, _ 
          Header:=xlYes 

回答

2

Range.Sort method每個進程最多有三個鍵。但是,如果您先按額外的鍵排序,然後按三個最主要的鍵,您將獲得相同的結果。

With Range("A1:E" & lastrow) 
    'sort on the 4th key first (column E) 
    .Cells.Sort Key1:=.Columns(5), Order1:=xlAscending, _ 
       Orientation:=xlTopToBottom, Header:=xlYes 
    'sort on the 1st, 2nd and 3rd keys (columns A, C and D) 
    .Cells.Sort Key1:=.Columns(1), Order1:=xlAscending, _ 
       Key2:=.Columns(3), Order2:=xlAscending, _ 
       Key3:=.Columns(4), Order3:=xlAscending, _ 
       Orientation:=xlTopToBottom, Header:=xlYes 
End With 

這產生了與在該方法中允許有Key4:=.Columns(5), Order4:=xlAscending相同的結果。

我嘗試使用With ... End With statement來確保定義鍵的父級的簡單方法。您的原始代碼依賴於ActiveSheet property,這並不總是可靠的。