Sort 方法 对值区域进行排序。 语法:Sort(Key1, Order1, Key2, Type, Order2, Key3, _ Order3, Header, OrderCustom, MatchCase, _ Orientation, SortMethod, DataOption1, _ DataOption2, DataOption3) Key1 可选,指定第一排序字段。 Order1 可选,确定 Key1 中指定的值的排序次序,可取值如下: xlAscending,升序,这是默认值,忽略的情况下按升序排。 xlDescending,降序。 Key2 可选,第二排序字段;对数据透视表进行排序时不能使用。 Type 可选,当对透视表进行排序时,指定对哪些元素排序; Order2 可选 ,确定 Key2 中指定的值的排序次序。 Key3 可选,第三排序字段;对数据透视表进行排序时不能使用。 Order3 可选,确定 Key3 中指定的值的排序次序。 Header 可选 XlYesNoGuess 指定第一行是否包含标题信息。 xlNo 是默认值;如果希望由 Excel 尝试确定标题,则指定xlGuess。 在10中默认情况下Excel自带有11个自定义序列。 当赋值为1时代表排序方式为普通(非自定义序列) MatchCase 可选,排序时是否分区大小写的排序;不能用于数据透视表。 Orientation 可选 ,指定排序方向。 xlSortColumns ,按列排序。 xlSortRows , 按行排序,默认值。 SortMethod 可选,排序方法。 xlPinYin 1 按字符的汉语拼音顺序排序。这是默认值。 xlStroke 2 按每个字符的笔划数排序。 DataOption1 可选,指定 Key1 中所指定区域中的文本的排序方式; xlSortNormal,分别对数字和文本数据进行排序,默认值。 xlSortTextAsNumbers,将文本作为数字型数据进行排序。 DataOption2 可选,指定 Key2 中所指定区域中的文本的排序方式; DataOption3 可选,指定 Key3 中所指定区域中的文本的排序方式; 注意: 对于特定的工作表,每次使用本方法时,将保存对 Header、Order1、Order2、Order3、 如果在下次调用本方法时不指定这些参数的值,则会使用这些保存的值。 如果不使用这些保存的值,在每次使用 Sort 方法时请明确设置这些参数的值。 不能转换为数字型数据的文本字符串按常规排序。 如果使用 Sort 方法时没有定义参数,则会对所选定的要排序的区域按升序排序。 另外,该方法兼容03(97-2003中,排序只能基于3个条件,而在10可以支持64个排序条件)。 示例1: With Range('b5').CurrentRegion .Sort key1:=Range('c5'), order1:=xlDescending, Header:=xlYes '按金牌数排序 .Sort key1:=Range('c5'), order1:=xlDescending, _ key3:=Range('e5'), order3:=xlDescending, Header:=xlYes '否则标题行参与到排序后效果可就会让你掉眼镜了。 '金银铜按降序排序(同样的金牌,再比银,如银相同再比铜) '注意法国,乌克兰,荷兰的先后顺序 End With 效果图: 示例2: 在行排序时需要注意的一点就是标题列。 在列排序中有标题行一说,但是在行排序中无标题列这个参数。 Range('b1:p4').Sortkey1:=Range('a2'), order1:=xlDescending, _ key1:=Range('a3'),order1:=xlDescending, _ key1:=Range('a4'),order1:=xlDescending, _ 效果图: 示例3: 数据还是用示例1的。 Range('b5').CurrentRegion.Sortkey1:=Range('b5'), order1:=xlDescending, _ '对国家/地区字段按拼音排序 Range('b5').CurrentRegion.Sortkey1:=Range('b5'), order1:=xlDescending, _ '对国家/地区字段按笔画排序 示例4: Dim iCl As Byte iCl = Application.CustomListCount '取得当前已定义的自定义序列的数目(包括内置序列) Application.AddCustomList Range('f2:f8') '添加自定义序列,这里没有考虑当要添加的自定义序列已经存在的情况 Range('a1').CurrentRegion.Sort _ key1:=Range('b1'), Header:=xlYes, _ ordercustom:=iCl + 2 '按自定义排序,这里ordercumtom参数需要注意下,因为是基于1开始 '(1是普通,加上系统的内置的,再加上自己添加的) Application.DeleteCustomList iCl + 1 '删除添加的自定义序列 效果图: 关于其他参数的就不一一介绍了。 另外,刚测试代码时试了同一个命名参数添加两个,系统只认第一个。 Range('a1').CurrentRegion.Sort _ key1:=Range('b1'), order1:=xlDescending, _ order1:=xlAscending, _ Header:=xlYes, _ ordercustom:=iCl + 2 Range('a1').CurrentRegion.Sort _ key1:=Range('b1'), order1:=xlAscending, _ order1:=xlDescending, Header:=xlYes, _ ordercustom:=iCl + 2 |
|
来自: fzchenwl > 《excel精英培训》