2013-10-22 127 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 

二,來自你的問題發表評論。嘗試使用這種參考文獻: