vba-Sort 函數對工作表排序的方法


來源:http://www.360doc.com/content/17/0719/14/12298544_672573888.shtml

360doc@途之人

 



Range("待排序數據區域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,
        Header, OrderCustom, MatchCase, Orientation, SortMethod,
        DataOption1, DataOption2, DataOption3)

其中各類型參數的意義如下:
① key1、key2、key3
這些key是排序的關鍵列(或行)的單元格地址,如 Range("A1")
實際只要選對列標題即可,對行數要求不敏感。

【行數要求不敏感】
即數據區域中任意行數都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。

【注意】
1. 一次Sort只能調用至多3個參數,沒有key4可以使用。
2. 至少使用1個參數即可,即key2、key3可以省去不用。

【引用方法】
1. 帶參數名引用,如: key1:=Range("G3")
   帶參數名引用時

2. 參數位置引用,即按照上述Sort命令的參數順序直接應用,
   如: Range("A1:I19").Sort key1:=Range("G3")  即第1位置參數即為key1


②  Order1、Order2、Order3
   這些Order是排序的順序模式指定參數。即: A-Z升序、或Z-A降序
    參數的模式名稱為:
          A-Z升序= xlAscending 或直接=1
               Z-A降序= xlDescending 或直接=2

  帶參數名引用時:
  Order1:=xlAscending  或 Order1:= 1

  參數位置引用時,緊跟key后面。(但注意key2和Order2之間要隔一個Type參數)


③  Header
    即是否有標題行參數,一共有3個值:
    Header:= xlGuess=0 或xlYes=1 或 xlNo=2
    即=xlGuess、或=0時,工作表自己判斷
     =xlYes、或=1時,強制第1行為列標題,即第1行【不參與排序】
     =xlNo、或=2時,強制沒有列標題。即第1行【也參與排序】

  帶參數名引用時:
   如: Header:= xlGuess
   
   參數位置引用時,在第7個逗號之后。
  (如果key只有1個時,要連續空6個逗號,
   如:Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之后連續寫6個逗號)


④ MatchCase 是否匹配大小寫
    MatchCase:=False 、或=0 不區分大小寫
    MatchCase:=True 、或=1 區分大小寫(Case Sensitive)

⑤ Orientation 排序方向 
   一般為同一列中從上到下各行進行排序:Orientation:= xlTopToBottom 、或=1
    如果是: 同一行中從左到右各列進行排序,則為:Orientation:= xlLeftToRight、或=2


⑥ SortMethod 排序方法
    按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info)
    按筆畫排序: SortMethod:= xlStroke、或=2


⑦ DataOption1 按數值或按文本排序
    DataOption1:= xlSortNormal


以上綜合示例為:
按參數名引用:
Range("A1:I19").Sort key1:=Range("G3"), Order1:=xlAscending, _
         Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
         Orientation:=xlTopToBottom, SortMethod:=xlPinYin, _
         DataOption1:=xlSortNormal

直接按參數位置:
Range("A1:I19").Sort [G3], 1, , , , , ,0, 1, 0, 1, 1,1

或根據默認為:Range("A1:I19").Sort [G3], 1


 

 

 

 

 

Range("待排序數據區域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,

        Header, OrderCustom, MatchCase, Orientation, SortMethod,

        DataOption1, DataOption2, DataOption3)

 

其中各類型參數的意義如下:

key1key2key3

這些key是排序的關鍵列(或行)的單元格地址,如 Range("A1")

實際只要選對列標題即可,對行數要求不敏感。

 

【行數要求不敏感】

即數據區域中任意行數都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。

 

【注意】

1. 一次Sort只能調用至多3個參數,沒有key4可以使用。

2. 至少使用1個參數即可,即key2key3可以省去不用。

 

【引用方法】

1. 帶參數名引用,如: key1:=Range("G3")

   帶參數名引用時

 

2. 參數位置引用,即按照上述Sort命令的參數順序直接應用,

   : Range("A1:I19").Sort key1:=Range("G3")  即第1位置參數即為key1

 

 

  Order1Order2Order3

   這些Order是排序的順序模式指定參數。即: A-Z升序、或Z-A降序

    參數的模式名稱為:

          A-Z升序= xlAscending 或直接=1

               Z-A降序= xlDescending 或直接=2

 

  帶參數名引用時:

  Order1:=xlAscending   Order1:= 1

 

  參數位置引用時,緊跟key后面。(但注意key2Order2之間要隔一個Type參數)

 

 

  Header

    即是否有標題行參數,一共有3個值:

    Header:= xlGuess=0 xlYes=1 xlNo=2

    =xlGuess、或=0時,工作表自己判斷

     =xlYes、或=1時,強制第1行為列標題,即第1行【不參與排序】

     =xlNo、或=2時,強制沒有列標題。即第1行【也參與排序】

 

  帶參數名引用時:

   : Header:= xlGuess

   

   參數位置引用時,在第7個逗號之后。

  (如果key只有1個時,要連續空6個逗號,

   :Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之后連續寫6個逗號)

 

 

MatchCase 是否匹配大小寫

    MatchCase:=False 、或=0 不區分大小寫

    MatchCase:=True 、或=1 區分大小寫(Case Sensitive)

 

Orientation 排序方向 

   一般為同一列中從上到下各行進行排序:Orientation:= xlTopToBottom 、或=1

    如果是: 同一行中從左到右各列進行排序,則為:Orientation:= xlLeftToRight、或=2

 

 

SortMethod 排序方法

    按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info)

    按筆畫排序: SortMethod:= xlStroke、或=2

 

 

DataOption1 按數值或按文本排序

    DataOption1:= xlSortNormal

 

 

以上綜合示例為:

按參數名引用:

Range("A1:I19").Sort key1:=Range("G3"), Order1:=xlAscending, _

         Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _

         Orientation:=xlTopToBottom, SortMethod:=xlPinYin, _

         DataOption1:=xlSortNormal

 

直接按參數位置:

Range("A1:I19").Sort [G3], 1, , , , , ,0, 1, 0, 1, 1,1

 

或根據默認為:Range("A1:I19").Sort [G3], 1

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM