返回列表 上一主題 發帖

[發問] 遞增排序A1~A10,如何讓A1後面是A2而不是A10。

[發問] 遞增排序A1~A10,如何讓A1後面是A2而不是A10。

  1. 'A:F遞增排序
  2.     ActiveSheet.Columns("A:F").Select
  3.     Selection.Sort Key1:=ActiveSheet.Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
  4.         OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
  5.         :=xlStroke, DataOption1:=xlSortNormal
複製代碼
以上是遞增排序的巨集~
但是排序後~資料內有A1.XXXXX~A10.XXXXXXX
遞增排序~卻是
A1.XXXXX
A10.XXXXX
A2.XXXXXXX

如何讓它變成
A1.XXXXXX
A2.XXXXX

回復 1# av8d

意思是 A2和A10相同的C欄值?
試試這個
  1. ActiveSheet.Columns("A:F").Sort Key1:=ActiveSheet.Range("C2"), Order1:=xlAscending, Key2:=[A1], Order:=xlAscending
複製代碼
若上傳附檔可能會更了解你的問題
另外建議不要整欄選起來排序 效率會很差=~=

TOP

回復 1# av8d
基本上資料含有非數值字元時,就以文字排序,要以數值排序必須加輔助欄位取得數值,然後以該輔助欄位排序

    Sort.rar (8.53 KB)
學海無涯_不恥下問

TOP

回復 3# Hsieh


    由於C欄除了有A1~A20外~還有B1~B20~和C1~C20等...
如果我將test隱藏~是否可以針對他排序呢?謝謝!

TOP

回復 4# av8d
於工具->選項->自訂清單 新增 清單  A1,A2,,,,A10,,,  清單  B1,B2,,,,B10,,,    清單  C1,C2,,,,C10,,,,      

Range("B2:B9").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=12, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlStroke, DataOption1:=xlSortNormal
-- OrderCustom:=12   --  12 為第一個新增清單的索引值 依序為 13 ,14....
新增清單

EX1.GIF
2012-8-19 21:17


排序圖


EX2.GIF
2012-8-19 21:17

TOP

回復 5# GBKEE


    我的是2010版~可是找不到選項->自訂清單->匯入

我記得以前有使用過~我再找看看^^ 謝謝G大!

TOP

回復  GBKEE


    我的是2010版~可是找不到選項->自訂清單->匯入

我記得以前有使用過~我再找看看^^ ...
av8d 發表於 2012-8-19 21:46



    找到了~選項->進階->編輯自訂清單~謝謝G大!

TOP

回復 5# GBKEE


    好像不能A1~A20且B1~B20且C1~C20~
是因為過長?

TOP

本帖最後由 Hsieh 於 2012-8-19 23:02 編輯

回復 8# av8d
G2=--SUBSTITUTE(A2,MID(A2,1,LOOKUP(2,1/ISERROR(--MID(A2,ROW(INDIRECT("A1:A"&LEN(A2))),1)),ROW(INDIRECT("A1:A"&LEN(A2))))),"")
play.gif
2012-8-19 23:02
學海無涯_不恥下問

TOP

回復 9# Hsieh

如果是一般
1.XXXX
2.XXXX
8.XXXX
11.XXXX

怎麼排序卻是
1.XXXX
11.XXXX
2.XXXX
8.XXXX

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題