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

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

另外,如果你知道我如何通过列名而不是列来引用我感兴趣的列,那就太好了。 - undefined
1个回答

4

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

.SortFields.Add columnToSortBy, xlSortOnValues, xlDescending

接下来,回答您的评论中的问题。请参考以下内容:

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

当我像上面提到的那样使用Range时,我遇到了错误:对象_Global的方法'Range'失败了。我知道,这是一个很旧的帖子...也许有人可以帮助我吗? - undefined
@Venu,你应该以某种方式展示你的代码。最好的办法是发布你自己的问题。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接