我需要按int值对值进行排序,例如1 2 3 10 1000
但是我代码就像字符串一样工作,比如11010023
下面是我的EXCEL VBA排序代码:
Private Sub lstview1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
With lstview1
.SortKey = ColumnHeader.Index - 1
If .SortOrder = lvwAscending Then
.SortOrder = lvwDescending
Else
.SortOrder = lvwAscending
End If
.Sorted = True
End With
结束子组件
我怎么能解决这个Excel vba
2条答案
按热度按时间a9wyjsp71#
Listview是按字母顺序排序的,这是它的一个局限性。下面是我为你创建的一个快速的例子来排序数字数据。
代码
行动中
yhxst69z2#
Siddharth Rout的代码工作得很好,但是如果你希望能够对所有列进行排序并且其中一些是数值型的,你可以使用ColumnHeader.Index,并与下面的代码(源代码和致谢名单:(https://www.tek-tips.com/viewthread.cfm?qid=578008):