VBA 排序之sort


在日常VBA中,自帶的sort函數可以定義三個排序字段(key值)

 

 舉例代碼如下:

Sub test()
With Worksheets("SUMMARY OF DEPOT INVENTORY").Range("c10:o245")
.Sort key2:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("d10"), _
      key3:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("e10"), _
      key1:=Worksheets("SUMMARY OF DEPOT INVENTORY").Range("k10"), _
      order1:=xlAscending, _
      order2:=xlAscending, _
      order3:=xlAscending, _
      Header:=xlYes
End With
End Sub

  但是遇到要多條件排序的話,排序字段超出3個就比較麻煩了,需要多次排序,

  不過sort函數換一種寫法,用里面自定義排序,可以添加多個排序的字段

Sub test3()
    With ActiveWorkbook.Worksheets("SUMMARY OF DEPOT INVENTORY")
    .Sort.SortFields.Clear '清空自定義排序的規則
    '增加4個key值
    .Sort.SortFields.Add Key:=.Range("K10"), SortOn:=xlSortOnValues, Order:=xlAscending
    .Sort.SortFields.Add Key:=.Range("d10"), SortOn:=xlSortOnValues, Order:=xlAscending
    .Sort.SortFields.Add Key:=.Range("e10"), SortOn:=xlSortOnValues, Order:=xlAscending
    .Sort.SortFields.Add Key:=.Range("n10"), SortOn:=xlSortOnValues, Order:=xlAscending
    '設置表格排序內容的范圍
    .Sort.SetRange Range("a10:n245")
    '表頭是否包含
    .Sort.Header = xlYes
    '執行
    .Sort.Apply
    End With
End Sub

 

 

知乎找來的一張關於每個方法對應的內容

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM