Board logo

標題: 求問原因:排序4個key出現Error, 3個key 沒問題 [打印本頁]

作者: 198188    時間: 2024-7-19 16:23     標題: 求問原因:排序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就沒問題,請問是什麽原因
作者: Andy2483    時間: 2024-7-20 10:11

回復 1# 198188


    建議用錄製巨集的方法
作者: 198188    時間: 2024-7-22 09:03

回復 2# Andy2483

上面的就是錄製巨集后,抄到程式内,可是運行時出現錯誤。
然後我刪了KEY4后,就沒問題了。
作者: Andy2483    時間: 2024-7-23 08:21

回復 3# 198188


    建議4層排序都用錄製的方式
作者: luhpro    時間: 2024-8-18 06:59

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


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

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

若你使用錄製時選擇超過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
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)