2013-10-22 131 views
0

我试图使用下面的VBA代码对表进行排序。代码确实选择了正确的列,并且列过滤器在其中获得了一个小箭头,表明它已被排序。但行不排序。他们保持未分类。使用VBA在Excel中排序表格?

出了什么问题?

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

此外,如果您知道如何通过名称而不是按列来引用我感兴趣的列,那就太棒了。 – user1283776

回答

0

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

.SortFields.Add columnToSortBy, xlSortOnValues, xlDescending 

二,来自你的问题发表评论。尝试使用这种参考文献: