我正在尝试通过 Excel VBA 对数据进行排序,但它已经按不同的标头排序。在设置新排序字段之前,如何清除所有排序字段?我已经尝试过
Sort.SortFields.Clear
但没有成功。任何帮助将不胜感激。这是我正在使用的代码:
Sheet9.Activate
Columns("J:J").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(1, "J").Value = "InternalID"
Set rng2 = FindHeader("CLIENT NAME", Sheet9.Name)
Count = 1
Sheet9.Cells.Select
With Sheet9.Sort
.SortFields.Clear
.SortFields.Add Key:=rng2, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("Your_Range_Value").AutoFilter Field:=1
我对每个具有排序字段的列都执行了此操作,并将其清除。其中 Field:=X 是您要清除的范围内的列号。
这就是我的工作簿中的内容。 Sheet1 是工作表的代码名称,rng 是表示范围值的字符串(“B4:G1500”)
' Clear all filters
Sheet1.Range(rng).AutoFilter Field:=1
Sheet1.Range(rng).AutoFilter Field:=2
Sheet1.Range(rng).AutoFilter Field:=3
Sheet1.Range(rng).AutoFilter Field:=4
Sheet1.Range(rng).AutoFilter Field:=5
Sheet1.Range(rng).AutoFilter Field:=6