|
本帖最后由 peter0503 于 2020-2-8 17:24 编辑
关于VBA Lisetview标题排序的问题之解决
VBA 的ListView控件,点击标题项目,进行排序,其运用的事件之代码编写为:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Dim i As Long
Me.ListView1.Sorted = True
Me.ListView1.SortKey =Me.ListView1.ColumnHeaders.Count - 1
If Me.ListView1.SortOrder = lvwDescending Then
Me.ListView1.SortOrder = lvwAscending
Else
Me.ListView1.SortOrder = lvwDescending
End If
End Sub
但其排序结果不够准确,后改为:
Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Me.ListView1.Sorted = True
Me.ListView1.SortKey =ColumnHeader.SubItemIndex
If Me.ListView1.SortOrder = lvwDescending Then
Me.ListView1.SortOrder = lvwAscending
Else
Me.ListView1.SortOrder = lvwDescending
End If
End Sub
其排序结果正确
ColumnHeader.SubItemIndex---建立了行标题与行内容的联系,而前者,只是对行标题的总数进行 控制,按行标题Key值进行排序,而没有建立与行内容的联系!
|
|