vba

您所在的位置:网站首页 vba排序代码高效 vba

vba

2023-11-01 23:40| 来源: 网络整理| 查看: 265

来源: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)

 

其中各类型参数的意义如下:

① 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

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3