2

我尝试使用以下 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
4

1 回答 1

2

首先,您错过了.SortFields.Add method. 你需要的是:

.SortFields.Add columnToSortBy, xlSortOnValues, xlDescending

其次,您评论的问题。尝试使用这种参考:

Set columnToSortBy = Range(tbl.Name & "[[#All],[column name here]]")
于 2013-10-22T08:52:03.780 回答