在日常VBA中,自带的sort函数可以定义三个排序字段(key值)

举例代码如下:
Sub test()
With Worksheets("SUMMARY OF DEPOT INVENTORY").Range("c10:o245")
.Sort key2:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("d10"), _
key3:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("e10"), _
key1:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("k10"), _
order1:=xlAscending, _
order2:=xlAscending, _
order3:=xlAscending, _
Header:=xlYes
End With
End Sub
但是遇到要多条件排序的话,排序字段超出3个就比较麻烦了,需要多次排序,
不过sort函数换一种写法,用里面自定义排序,可以添加多个排序的字段
Sub test3()
With ActiveWorkbook.Worksheets("SUMMARY OF DEPOT INVENTORY")
.Sort.SortFields.Clear '清空自定义排序的规则
'增加4个key值
.Sort.SortFields.Add Key:=.Range("K10"), SortOn:=xlSortOnValues, Order:=xlAscending
.Sort.SortFields.Add Key:=.Range("d10"), SortOn:=xlSortOnValues, Order:=xlAscending
.Sort.SortFields.Add Key:=.Range("e10"), SortOn:=xlSortOnValues, Order:=xlAscending
.Sort.SortFields.Add Key:=.Range("n10"), SortOn:=xlSortOnValues, Order:=xlAscending
'设置表格排序内容的范围
.Sort.SetRange Range("a10:n245")
'表头是否包含
.Sort.Header = xlYes
'执行
.Sort.Apply
End With
End Sub
知乎找来的一张关于每个方法对应的内容
