在我的电子表格上运行VBA功能后,我想自动重新排序数据,因此用户不必这样做。我试图完成的排序选项如下:
我的vba代码目前是:
Columns("A:AA").Sort key1:=Range("C1:C1"), order1:=xlAscending, key2:=Range("G1:G1"), order2:=xlAscending, key3:=Range("A1:A1"), order3:=xlAscending, Header:=xlYes
正如您所看到的,A列将正确排序,但其他2列将不会根据Fail, Dismissed, Passed
条件和Critical, High, Medium, Low
我正在尝试做什么?有没有人知道指定这些排序的方法?
答案 0 :(得分:2)
使用宏录制器让我看到以下代码:
With ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("C:C"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
CustomOrder:="Fail,Dismissed,Passed", _
DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("G:G"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
CustomOrder:="Critical,High,Medium,Low", _
DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("A:A"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
.Sort.SetRange .Range("A:AA")
.Sort.Header = xlYes
.Sort.MatchCase = False
.Sort.Orientation = xlTopToBottom
.Sort.SortMethod = xlPinYin
.Sort.Apply
End With
希望这应该做你想要的。