Excel工作表经常会进行排序操作,这也是对于提高表格实际反映数据集合的一个有效办法。
通过VBA代码实现某一字段排序,可以增加数据的可读性和有序性。
比如实现成绩的从低到高排序,资金金额的从高到低排序等等,排序结果可以对于我们的数据统计一目了然的目的。
本节通过一个实例来讲解,如何用VBA代码实现排序的方法。
同样,要实现这样的功能也是通过一个方法,这个方法是一个对象行使的方法,那么就需要认识这个对象。
对象名:Sort
获取方法:WorkSheet.Sort
排序:WorkSheet.Sort.Apply
也就是说,要通过Sort对象的Apply方法来实现排序。
当然,这只是其一,过程当中,还需要进行一些排序条件的设置,设置的内容为Sort对象属性,具体属性如下图所示:
通过设置上图属性之后,执行排序就会得到一个有序的数据表。
为实现这样的过程,我们设计了下面一个工作表,来进行演示排序结果。
根据表内容,将表头字段放到一个列表框内容,选择列表名称,然后单击排序按钮就会实现相应字段的排序。
示例过程就是这样,下面具体看一下代码。
排序代码
Option Explicit
'排序
Private Sub ApplySort
Dim xid, xR As Range, xAdd As String
xid = Me.ListBox1.ListIndex '返回排列字段索引值
Set xR = ActiveSheet.Range '设置排序字段组
xAdd = VBA.Split.Address, "$") '提取索引列字母
Dim SortRange As Range
Set SortRange = ActiveSheet.Range
With ActiveSheet.Sort
.SortFields.Clear '清除所有 SortFields 对象
.SortFields.Add Key:=Range, SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
'新建 SortFields 对象
.SetRange SortRange '设置排序区域
.Header = xlYes '指定第一行包含标题信息
.MatchCase = False '指定不区分大小写
.SortMethod = xlPinYin '指定中文排序方法
.Apply '执行排序
End With
Set SortRange = Nothing
Set xR = Nothing
End Sub
整合排序过程如上代码介绍,分别有相应注释。
比较不好理解的是,代码中多出了一个对象方法:SortFields.Add
这是另一个对象,可以实现添加排序字段,然后返回一个SortField对象。
本节不再介绍此对象,其应用方法将在下一节具体介绍。
要知道的是,很多对象的应用并不是单独一个对象就可以实现的,需要多个对象相互引用才可以实现。
本节主要明白一个Sort对象就可以实现学习目的。
重点是要对所有的属性进行一个认真学习,参考代码注释可以有效帮助理解。
欢迎关注、收藏
---END---