Board logo

標題: [發問] 如何將巨集而成的"排序"改成目前選取中的排序 [打印本頁]

作者: av8d    時間: 2012-2-21 10:28     標題: 如何將巨集而成的"排序"改成目前選取中的排序

Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlStroke, DataOption1:=xlSortNormal

以上是針對C欄排序地巨集

是否可以改寫成針對目前所選取範圍的排序?
作者: register313    時間: 2012-2-21 11:07

本帖最後由 register313 於 2012-2-21 11:43 編輯

回復 1# av8d

Selection.Sort Key1:=Selection, Order1:=xlAscending

Selection.Sort Key1:=Selection.Resize(1, 1), Order1:=xlAscending
作者: av8d    時間: 2012-2-21 14:44

回復 2# register313


    大大真是太厲害了~請問大大~如果是選取範圍是A3:C7的話~以C欄遞增排序~又該如何改寫呢?
作者: register313    時間: 2012-2-21 15:25

回復 3# av8d

Selection.Sort Key1:=Selection.Offset(0, Selection.Columns.Count - 1), Order1:=xlAscending

以所選擇範圍之最後一欄為排序鍵作遞增排序
作者: av8d    時間: 2012-2-22 11:38

本帖最後由 av8d 於 2012-2-22 11:40 編輯

回復 4# register313

Selection.Sort Key1:=Selection.Offset(0, Selection.Columns.Count - 1), Order1:=xlAscending
    請問所選的最後一欄為Offset(0, Selection.Columns.Count - 1
舉例好了,如果我選了ABC欄所以
0=C欄
-1=B欄
-2=A欄
作者: register313    時間: 2012-2-22 12:32

回復 5# av8d

若選A~C欄
Selection.Sort Key1:=Selection.Offset(0, 0), Order1:=xlAscending    以A欄為排序鍵
Selection.Sort Key1:=Selection.Offset(0, 1), Order1:=xlAscending    以B欄為排序鍵
Selection.Sort Key1:=Selection.Offset(0, 2), Order1:=xlAscending    以C欄為排序鍵
作者: av8d    時間: 2012-2-22 14:29

回復 6# register313


若選A~D欄
Selection.Sort Key1:=Selection.Offset(0, 0), Order1:=xlAscending    以A欄為排序鍵
Selection.Sort Key1:=Selection.Offset(0, 1), Order1:=xlAscending    以B欄為排序鍵
Selection.Sort Key1:=Selection.Offset(0, 2), Order1:=xlAscending    以C欄為排序鍵
Selection.Sort Key1:=Selection.Offset(0, 3), Order1:=xlAscending    以D欄為排序鍵

以上是否正確?感謝!
作者: register313    時間: 2012-2-22 15:57

回復 7# av8d

正確




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