返回列表 上一主題 發帖

求問原因:排序4個key出現Error, 3個key 沒問題

求問原因:排序4個key出現Error, 3個key 沒問題

  1. Letter = "G"
  2. Worksheets("Backup").Range("A2:BB65536").sort Key1:=Range("D3"), Order1:=xlAscending, _
  3.                          Key2:=Range("A3"), Order2:=xlAscending, Key3:=Range(letter & "3"), Order3:=xlAscending, Header:=xlYes


  4. Worksheets("Backup").Range("A2:BB65536").sort Key1:=Range("D3"), Order1:=xlAscending, _
  5.                          Key2:=Range("A3"), Order2:=xlAscending, Key3:=Range("B3"), Order3:=xlAscending, Key4:=Range(letter & "3"), Order4:=xlAscending, Header:=xlYes
複製代碼
在做排序時,我使用4個key 就會出現Error, 只是3個Key就沒問題,請問是什麽原因

回復 1# 198188


    建議用錄製巨集的方法
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 2# Andy2483

上面的就是錄製巨集后,抄到程式内,可是運行時出現錯誤。
然後我刪了KEY4后,就沒問題了。

TOP

回復 3# 198188


    建議4層排序都用錄製的方式
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

在做排序時,我使用4個key 就會出現Error, 只是3個Key就沒問題,請問是什麽原因
198188 發表於 2024-7-19 16:23


請參考 :
  Range.Sort 方法 (Excel)

在 Sort 的語法說明中可以看到 排序條件最多只能有 "3" 個


若你使用錄製時選擇超過3個排序條件應該會發現它使用另外一種語法實現 :
   SortFields
  1.   Dim rTar As Range ' 排序標的
  2.   Dim letter As String
  3.   
  4.   letter = "G"
  5.   With Worksheets("Backup").Sort
  6.     Set rTar = .Parent.Range("A2:BB65536")
  7.    
  8.     .SortFields.Clear ' 清除排序設定
  9.    
  10.     ' rTar.Columns("D") 取 rTar 儲存格範圍標的內的 D 欄資料
  11.    
  12.     .SortFields.Add2 Key:=rTar.Columns("D") _
  13.       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
  14.    
  15.     .SortFields.Add2 Key:=rTar.Columns("A") _
  16.       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
  17.    
  18.     .SortFields.Add2 Key:=rTar.Columns("B") _
  19.       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
  20.    
  21.     .SortFields.Add2 Key:=rTar.Columns(letter) _
  22.       , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

  23.     .SetRange rTar
  24.     .Header = xlGuess
  25.     .MatchCase = False
  26.     .Orientation = xlTopToBottom
  27.     .SortMethod = xlPinYin
  28.     .Apply ' 執行排序
  29.   End With
複製代碼

TOP

        靜思自在 : 【時間成就一切】時間可以造就人格,可以成就事業,也可以儲積功德。
返回列表 上一主題