我想用4个键对数据库进行排序,但每当我添加第4个键时,它的名字命名参数未被找到,而它用这3个键对数据库进行排序..如何在此添加第4个...... ??
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
答案 0 :(得分: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并不总是可靠的。