Excel880–如何将数组快速写入Listview

2016年1月3日08:51:15 评论 4,838 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
微信公众号 【EXCEL880】 QQ群【273774246】

    在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

微信公众号 【EXCEL880】 QQ群【273774246】
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

发表评论

您必须才能发表评论!