(vba入门到精通80讲)(vba教程基础入门视频)

第一章 入门篇

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

(0)
打赏微信扫一扫微信扫一扫QQ扫一扫QQ扫一扫
上一篇2023-05-22
下一篇2023-05-22

你可能还想知道

发表回复

登录后才能评论