微信公众号 【EXCEL880】 QQ群【341401932】
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
课程咨询 加我微信EXCEL880B 试学网址http://v.excel880.com
在vba中使用窗体的时候,有时候需要用到listview显示数据,但是传统的listview添加数据操作并不方便,不像listbox可以直接list=arr这样直接把数组添加到控件中显示,特别是需要频繁的更新listview场景下,就会显得极其繁琐,于是我自己写了一个包装函数,数组添加到listview的过程包装成一个通用函数,另外再有一个添加listview表头的函数,这样2个函数结合起来,就算不懂listview的additem方法,也可以很方便对其添加数据,核心代码如下
这里有一个我做listview折叠汇总显示的例子,使用时可以参考一下
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