我尝试使用以下VBA代码对表进行排序。代码确实选择了正确的列,并且列过滤器确实在其中得到一个小箭头,表示它已排序。但行不排序。他们保持未分类。
有什么问题?
Sub SortTableTest()
Dim tbl As ListObject
Dim columnToSortBy As Range
Set tbl = Sheets("PB").ListObjects("AI")
Set columnToSortBy = tbl.ListColumns(9).Range
'Sort table
With tbl.Sort
.SortFields.Clear
.SortFields.Add columnToSortBy, xlDescending
.Header = xlYes
.MatchCase = False
.Apply
End With
End Sub
答案 0 :(得分:1)
首先,您错过了.SortFields.Add method
中的一个参数。你需要的是:
.SortFields.Add columnToSortBy, xlSortOnValues, xlDescending
第二,你的问题评论。试试这种参考文献:
Set columnToSortBy = Range(tbl.Name & "[[#All],[column name here]]")