ad

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.6 数据排序:RangeSort

网友投稿 61 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》一书中第1章,第1节,陈锡卢、李应钦著。

1.6 数据排序:RangeSort

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_提升工作效率_1.6 数据排序:RangeSort

1.6.1Range.Sort 排序运用

在 Excel中,排序也是一个经常用到的操作,不管是单一的数据排序或者筛选后的排序, 甚至是数据透视表中也会用到排序功能,在VBA 中排序功能对应了 Range.Sort, 其语法与主 要参数如下所列。Range.Sort 方法参数说明如表1-12所示。

对区域值进行排序

Range.Sort(Key1,Orderl,Key2,Type,Order2,Key3,Order3,Header,OrderCustom,MatchCase,Orientation, SortMethod,DataOption1,DataOption2,DataOption3)

无言 :Range.Sort方法的所有参数都是可选的,并根据每个参数的设置排序。现一个示 例进行代入——货运费用清单排序。具体过程如代码1-27所示。

代码1-27 单条件排序

001|Sub Rng_Sort_010

002| Dim Rng As Range

003| With Worksheets(1).Copy(After:=Worksheets(1))

004| Set Rng =Range("A1").CurrentRegion

0051 Rng.Sort Header:=xIYes,Key1:=Rng.Columns(2),Orderl:=xlAscending

006| End With

0071 Range("Al:0178").Sort Key1:=Range("B1"),Orderl:=xIAscending,Header:=xlYes

008|End Sub

(1)代码1 - 27示例过程首先定义了Rng 变量,并通过 Worksheets(1).Copy(After:= Worksheets(1)) 工作表1复制副表并放置在其后,并将副表A1 连续区域赋值给 Rng变量作为 Range.Sort方法的 Range 对象表达式。

(2)Rng.Sort Header:=XIYes,Key1:=Rng.Columns(2),Orderl:=XIAscending 语句为指定排 序操作。其中 Header参数虽然为可选,但是对于实际排序是必需的,如果忽略该参数将会造 成标题参与排序,导致标题跑位,所以必需设置参数;接着赋值第1个排序字段指定 Rng 区 域中的第2列( .Columns(2)) 为排序关键列,并将Order1 参数排序方式设置为升序。

? 皮蛋:那下面那句代码干什么用?

无言:其实该句的意思在与上面作用基本一样,直接写明了排序的具体区域,并将B 列作 为排序的关键字段。

皮蛋: 那B1和Columns(2)有差别吗?

无言:因为已经限制了Header 参数第1行为标题,所以此处无差别,但是如果没 有设置Head er参数,就必需将标题行置于排序区域外,例如Range("A1:0178") 变更为 Range("A2:O178"),B1 和Columns(2) 保持不变即可。代码1-28所示为2个Key 进行排序的 过程。

代 码 1 - 2 8 双 条 件 排 序

001|Sub Rng_Sort_020

002| Dim Rng As Range

003| With Worksheets(1).Copy(After:=Worksheets(1))

004 Set Rng=Range("A1"),CurrentRegion

005] Rng.Sort Header:=xlYes,_

006| Key1:=Rng.Columns(2),Order1:=xlAscending,Key2:=Rng.Columns(15),

Order2:=xidescending

007| End With

008|End Sub

Range.Sort 排序参数中的 Keyl~Key3 和 Orderl~Order3 参数都用于设置需要排序的关键字 段及该字段采用升序或降序;DataOption1~DataOption3 参数则是当遇到排序的单元格中存在文 本数字是将这些数字作为文本排序,还是直接按照数字大小进行排序。

还有MatchCase 、Orientation 和 SortMethod 参数也都比较好理解,是否区分字母大小写进 行排序、是按行或按列排序、中文是要按拼音还是其笔画顺序排序。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_3.3.2 指定对象循环
下一篇:《自己动手写 Python 虚拟机》_更理解虚拟机的意义_7.1.2 操作列表
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×