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

2016年1月3日08:51:15 评论 4,486 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

    在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

  • 郑广学老师微信号
  • EXCEL880B
  • weinxin
  • 我的微信公众号
  • EXCEL880
  • weinxin

发表评论

您必须才能发表评论!