本帖最后由 百度不到去谷歌 于 2016-1-4 13:44 编辑
在vba中使用窗体的时候,有时候需要用到listview显示数据,但是传统的listview添加数据操作并不方便, 不像listbox可以直接list=arr这样直接把数组添加到控件中显示,特别是需要频繁的更新listview场景下, 就会显得极其繁琐,于是我自己写了一个包装函数,数组添加到listview的过程包装成一个通用函数, 另外再有一个添加listview表头的函数,这样2个函数结合起来,就算不懂listview的additem方法, 也可以很方便对其添加数据,核心代码如下 - Public Sub AddHeaders(arr, ListView1 As Object)
- '读入二维数组第一行写入到表头
- '示例 AddHeaders arr,UserForm1.listview1
- Dim i&
- ListView1.ColumnHeaders.Clear
- For i = 1 To UBound(arr, 2) - 2
- ListView1.ColumnHeaders.Add , , arr(1, i)
- Next
- ListView1.ColumnHeaders.Add , , arr(1, i), 0
- ListView1.ColumnHeaders.Add , , arr(1, i + 1), 0
- End Sub
- Public Sub AddList(arr, ListView1 As Object)
- '读入二维数组,将每行依次写入到listview控件中
- '示例 AddHeaders arr,UserForm1.listview1
- Dim i&, j&, k&, brr
-
- With ListView1
- .ListItems.Clear '清空列表
- For i = 1 To UBound(arr, 1)
-
- ListView1.ListItems.Add , , arr(i, 1), , 1
- For j = 1 To UBound(arr, 2) - 1
- ListView1.ListItems(i).SubItems(j) = arr(i, j + 1)
- Next
- Call lsvFormat(i, i)
- Next
- End With
- End Sub
复制代码
这里有一个我做listview折叠汇总显示的例子,使用时可以参考一下
附件下载
本人博客http://excel880.com交流分享各种office编程技术,欢迎来访
|