excelvba中使用sort函数对工作表排序的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Excel VBA中使用Sort 函数对工作表排序的方法
工作表内单元格数据的排序,使用Range.Sort 命令。但是后面的参数较多,新人一般采用录制宏时出来一大堆,也不知道该如何编辑。因此,我开这一个帖子,给新人普及一下: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个逗号)④ Mat chCase 是否匹配大小写
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