大家好,我们今日继续讲解VBA代码解决方案的第104讲内容:在Listview控件中排序。在讲控件的时候我首先详细的讲解了TEXTBOX控件,再次详细讲解的就是这个Listview控件了,这些都是常用的控件,熟练的掌握这些对于自己非常的有好处,今天讲的是Listview控件如何进行排序。
在使用Listview控件显示报表型的数据时,可能通过单击Listview控件的列标题对列表数据进行排序,真的非常的方便,代码如下:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComc)
With me.ListView1
.Sorted = True
.SortOrder = (.SortOrder + 1) Mod 2
.SortKey = ColumnHeader.Index - 1
End With
End Sub
代码截图:
在讲解上述几个代码之前,我们先看看几个必要的属性设置的讲解。
1 Listview控件的Sorted属性返回或设置确定ListView控件中的ListItem对象是否排序,设置为False则不进行排序。
2 SortOrder属性返回或设置一个值,决定ListView控件中的ListItem对象以升序或降序排序,设置为0以升序排序,设置为1则以降序排序。
3 SortKey属性返回或设置一个值,此值决定ListView控件中的ListItem对象如何排序,语法如下:object.SortKey [=integer]
参数object是必须的,对象表达式,其值为ListView控件。
参数integer是必须的,指定排序关键字的整数,设置为0使用ListItem对象的Text属性排序,即第一列的数据进行排序。设置为大于0的整数则使用子项目的集合索引排序。
有了上面的属性的知识,我们来看下面的代码讲解就容易多了。
代码解析:Listview控件的ColumnClick事件过程,单击列标题时触发,对列表数据进行升序或降序排序。
第3行代码将Listview控件的Sorted属性设置为True。即表明允许排序。
第4行代码设置Listview控件的排序方式。这里是按照MOD运算来设置的,在设置SortOrder属性值时使用Mod运算符的目的是,到第一次排序以降序排序,再次排序时以升序排序,交替进行的效果。这样可以设置可以给操作带来方便。
第5行代码设置Listview控件排序关键字的整数,即指定Listview控件以当前选定的列数据进排序。
运行窗体,Listview控件显示工作表中的内容,单击列标题对列表数据进行升序或降序排序。
运行截图:
单击一下名称:
再次单击:
今日内容回向:
1 如何实现Listview控件的排序呢?
2 上述方法排序有个最大弊端,你是否意识到了呢?如何解决