分享好友 站长动态首页 网站导航

VBA编程,工作表排序方法,Sort对象实战代码

网友发布 2022-08-03 15:22 · 头闻号编程技术

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---

免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报

举报
反对 0
打赏 0
更多相关文章

评论

0

收藏

点赞