Board logo

標題: [發問] 遞增排序A1~A10,如何讓A1後面是A2而不是A10。 [打印本頁]

作者: av8d    時間: 2012-8-17 16:50     標題: 遞增排序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
作者: lalalada    時間: 2012-8-17 17:01

回復 1# av8d

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

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

    [attach]12171[/attach]
作者: av8d    時間: 2012-8-19 15:01

回復 3# Hsieh


    由於C欄除了有A1~A20外~還有B1~B20~和C1~C20等...
如果我將test隱藏~是否可以針對他排序呢?謝謝!
作者: GBKEE    時間: 2012-8-19 21:21

回復 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....
新增清單

[attach]12191[/attach]

排序圖


[attach]12192[/attach]
作者: av8d    時間: 2012-8-19 21:46

回復 5# GBKEE


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

我記得以前有使用過~我再找看看^^ 謝謝G大!
作者: av8d    時間: 2012-8-19 21:50

回復  GBKEE


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

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



    找到了~選項->進階->編輯自訂清單~謝謝G大!
作者: av8d    時間: 2012-8-19 21:55

回復 5# GBKEE


    好像不能A1~A20且B1~B20且C1~C20~
是因為過長?
作者: Hsieh    時間: 2012-8-19 22:56

本帖最後由 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))))),"")
[attach]12196[/attach]
作者: av8d    時間: 2012-8-21 16:05

回復 9# Hsieh

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

怎麼排序卻是
1.XXXX
11.XXXX
2.XXXX
8.XXXX
作者: Hsieh    時間: 2012-8-21 18:45

回復 10# av8d
不論如何,就是要使用輔助欄擷取出數值部分再去排序,才能達到你的需求
作者: Asterl    時間: 2012-8-22 16:47

有一個比較簡單的方法,
就是將A1、A2...
改成A01、A02...、A10
即可改善。
作者: av8d    時間: 2012-8-23 11:34

回復 12# Asterl


    A大~謝謝你~學習了^^
作者: taiabc1234    時間: 2012-8-24 23:52

文字和數字合在一起
execl會將其視為文字
作者: ML089    時間: 2012-8-27 16:13

回復 10# av8d

排序最好依照EXCEL的潛規則來處理

這種無法排序
1.XXXX
2.XXXX
8.XXXX
11.XXXX
就改為這種方式
01.XXXX
02.XXXX
08.XXXX
11.XXXX  

這種無法排序
A1
A2
A11
就改為這種方式
A01
A02
A11

如何修改:  用人工改、用公式改、用程式改
除了人工改外,其他由各位高手來發揮




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