求問原因:排序4個key出現Error, 3個key 沒問題
- 帖子
- 438
- 主題
- 67
- 精華
- 0
- 積分
- 531
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-10-30
- 最後登錄
- 2025-5-28
|
求問原因:排序4個key出現Error, 3個key 沒問題
- Letter = "G"
- Worksheets("Backup").Range("A2:BB65536").sort Key1:=Range("D3"), Order1:=xlAscending, _
- Key2:=Range("A3"), Order2:=xlAscending, Key3:=Range(letter & "3"), Order3:=xlAscending, Header:=xlYes
- Worksheets("Backup").Range("A2:BB65536").sort Key1:=Range("D3"), Order1:=xlAscending, _
- Key2:=Range("A3"), Order2:=xlAscending, Key3:=Range("B3"), Order3:=xlAscending, Key4:=Range(letter & "3"), Order4:=xlAscending, Header:=xlYes
複製代碼 在做排序時,我使用4個key 就會出現Error, 只是3個Key就沒問題,請問是什麽原因 |
|
|
|
|
|
|
- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-5-5
|
2#
發表於 2024-7-20 10:11
| 只看該作者
|
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流
|
|
|
|
|
- 帖子
- 438
- 主題
- 67
- 精華
- 0
- 積分
- 531
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-10-30
- 最後登錄
- 2025-5-28
|
3#
發表於 2024-7-22 09:03
| 只看該作者
回復 2# Andy2483
上面的就是錄製巨集后,抄到程式内,可是運行時出現錯誤。
然後我刪了KEY4后,就沒問題了。 |
|
|
|
|
|
|
- 帖子
- 1447
- 主題
- 40
- 精華
- 0
- 積分
- 1471
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Excel 2010 & 2016
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台灣
- 註冊時間
- 2020-7-15
- 最後登錄
- 2025-5-5
|
4#
發表於 2024-7-23 08:21
| 只看該作者
回復 3# 198188
建議4層排序都用錄製的方式 |
|
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流
|
|
|
|
|
- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
5#
發表於 2024-8-18 06:59
| 只看該作者
在做排序時,我使用4個key 就會出現Error, 只是3個Key就沒問題,請問是什麽原因
198188 發表於 2024-7-19 16:23 
請參考 :
Range.Sort 方法 (Excel)
在 Sort 的語法說明中可以看到 排序條件最多只能有 "3" 個
若你使用錄製時選擇超過3個排序條件應該會發現它使用另外一種語法實現 :
SortFields- Dim rTar As Range ' 排序標的
- Dim letter As String
-
- letter = "G"
- With Worksheets("Backup").Sort
- Set rTar = .Parent.Range("A2:BB65536")
-
- .SortFields.Clear ' 清除排序設定
-
- ' rTar.Columns("D") 取 rTar 儲存格範圍標的內的 D 欄資料
-
- .SortFields.Add2 Key:=rTar.Columns("D") _
- , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
-
- .SortFields.Add2 Key:=rTar.Columns("A") _
- , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
-
- .SortFields.Add2 Key:=rTar.Columns("B") _
- , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
-
- .SortFields.Add2 Key:=rTar.Columns(letter) _
- , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
- .SetRange rTar
- .Header = xlGuess
- .MatchCase = False
- .Orientation = xlTopToBottom
- .SortMethod = xlPinYin
- .Apply ' 執行排序
- End With
複製代碼 |
|
|
|
|
|
|