第一章 入门篇
1.16 Sort语句
1、Sort语句格式
Sort语句的功能相当于Excel菜单里的“排序”。该语句的语法是这样的:
单元格对象.Sort(Key1,Order1,Key2,Type,Order2,Key3,Order3,Header,OrderCustom,Orientation,SortMethod,DataOption1,DataOption2,DAtaOption3)
可能有人看到这里就头大了,怎么这么多参数?就象我开始说的那样,如果你不是想精通学习VBA,里面的很多参数都是我们平时用不到的、甚至根本不需要去了解的。但是如果你静下心来仔细观察这些参数,你就会发现,它们的设置,与我们点击Excel菜单里的“排序”以后出现的对话框,在对话框里要选择的功能是一一对应的。现在我们主要对这个语句的Key,Order和Header参数做一下讲解。
一、Key1、Key2、Key3是排序关键列,也就是以哪一列为关键词进行排序,可以用这一列的某个单元格表示,比如排序A列,用Range("a1")。
Key至少使用1个,最多使用3个,也就是说最多可以选取3个关键词排序。
二、Order1、Order2、Order3是排序模式,默认升序,简写为1,降序简写为2。
三、Header表示排序区域是否有表头
有表头,简写为1,默认没有表头,简写为2。
知道了这些参数的含义以后,我们就可以用它来写语句了:
Range("a1:e10").Sort Range("a1"), 1
对"a1:e10"区域进行排序,排序关键词是A列,升序排列。
2、小程序
对下表进行排序,以“资产名称”列和“原值”列为关键词,其中“资产名称”列升序排序,“原值”列降序排,并且保留表头(也就是表头不参与排序,一直在最上边一行):
卡片号 | 资产名称 | 建卡日期 | 原值 | 净值 |
00007933 | 空调 | 2007-12-31 | 498720.00 | 14961.60 |
00007934 | 台式电脑 | 2007-12-31 | 35670.00 | 1070.10 |
00012189 | 音响设备 | 2007-12-31 | 12420.00 | 372.60 |
00014439 | 照相机 | 2008-06-11 | 6800.00 | 204.00 |
00014439 | 音响设备 | 2008-06-11 | 6800.00 | 204.00 |
00014439 | 音响设备 | 2008-06-11 | 6800.00 | 204.00 |
00072375 | 监控设备 | 2013-12-28 | 16986.00 | 509.58 |
00072448 | 空调 | 2013-12-28 | 6405.00 | 192.15 |
Sub 排序()
Dim ss As Range
Set ss = Range("a1").CurrentRegion
ss.Sort Range("b1"), 1, Range("d1"), , 2, Header:=1
End Sub
在VBA程序里,把一个值赋值给一个变量,格式就是“变量=值”。但把一个对象赋值给一个变量,需要在变量前加“set”,比如在上面这个程序里,把Range("a1").CurrentRegion,与"a1"单元格相连接的一片区域这个对象赋值给一个变量,用的是“Set ss =Range("a1").CurrentRegion”。
VBA会按照语句格式里的参数顺序逐个辨别每个参数的含义,所以在写代码时直接写简写或者空着就可以了,不用打上key、order、type、header等。比如Range("a1:e10").Sort Range("a1"), 1这个语句,系统会自动把 Range("a1"), 1这两个参数默认为Key1,Order1。
但如果中间有些参数忽略不写了,直接跳到下一个参数,为了让系统识别这个参数是什么,就需要写上参数名称,如程序里的“Header:=1”。另一种做法就是把忽略的参数都用逗号补上,让系统知道这个参数我没有对它赋值,是空的。所以小程序里的排序语句也可以这样写:ss.Sort Range("b1"), 1, Range("d1"), , 2, , , 1,需要告诉系统做什么的参数都有值,没有值的参数直接用逗号略过,这样参数的顺序与Sort语句的格式一一对应,系统就会逐个认领。
在这篇文章的结尾,怕有些读者对语句格式里比较靠前的Type参数一直纳闷,所以就在这里给大家介绍一下吧。
Type参数指定要排序的元素,这个排序是在排序数据透视表时使用。它有两个参数:xlSortLabels按标签对数据透视表排序、xlSortValues按值对数据透视表排序。
往期精彩回顾:
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!
声明:我要去上班所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者云飞扬2654所有,原文出处。若您的权利被侵害,请联系删除。
本文标题:(vba入门到精通80讲)(vba教程基础入门视频)
本文链接:https://www.51qsb.cn/article/m839w.html