使用VBA在Excel中对表进行排序?

时间:2013-10-22 08:34:24

标签: vba excel-vba excel

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

1 个答案:

答案 0 :(得分:1)

首先,您错过了.SortFields.Add method中的一个参数。你需要的是:

.SortFields.Add columnToSortBy, xlSortOnValues, xlDescending

第二,你的问题评论。试试这种参考文献:

Set columnToSortBy = Range(tbl.Name & "[[#All],[column name here]]")