VBA自学应用(16)——Listview控件基本操作

ListView控件基本操作

  • 一、找到ListView控件
  • 二、Listview控件显示数据
  • 三、使用复选框
  • 四、在listview控件中排序

一、找到ListView控件

工具——附加控件——Microsoft ListView Control。

VBA自学应用(16)——Listview控件基本操作_第1张图片
VBA自学应用(16)——Listview控件基本操作_第2张图片

二、Listview控件显示数据

  • 首先我们插入一个ListView控件,如图所示。
    VBA自学应用(16)——Listview控件基本操作_第3张图片
  • 数据如图所示
    VBA自学应用(16)——Listview控件基本操作_第4张图片
  • 然后再对应事件中插入如下代码
Private Sub UserForm_Initialize()
    Dim lst As ListItem
    Dim i As Long, j As Long, k As Long, m As Long
    j = Sheet1.Cells(Rows.Count, 2).End(3).Row
    With Me.ListView1
        For i = 0 To Sheet1.Range("b3").CurrentRegion.Columns.Count - 1
            .ColumnHeaders.Add , , Sheet1.Cells(3, i + 2), 50
        Next
        '设置标题行
        .View = lvwReport
        .Gridlines = True
        '设置视图
        For k = 4 To j
            Set lst = .ListItems.Add()
            lst.Text = Sheet1.Cells(k, 2)
            For m = 1 To Sheet1.Range("b3").CurrentRegion.Columns.Count - 1
                lst.SubItems(m) = Sheet1.Cells(k, m + 2).Value
            Next
        Next
        '添加记录
        Set .SelectedItem = .ListItems(1)
        '选择第一条记录
    End With
    Set lst = Nothing
End Sub

三、使用复选框

  • 首先我们在上述代码中加入下列代码,以启用复选框
With Me.ListView1
	.FullRowSelect = True
	.CheckBoxes = True
End With
  • 然后插入一个命令窗体,刷入以下代码
Private Sub CommandButton1_Click()
    With Me.ListView1
        For i = 1 To .ListItems.Count
            If .ListItems(i).Checked Then
                Set rngCel = Sheet4.Cells(Rows.Count, 2).End(3).Offset(1)
                rngCel.Value = .ListItems(i)
                For j = 1 To 3
                    rngCel.Offset(0, j) = .ListItems(i).SubItems(j)
                Next
                .ListItems(i).Checked = False
            End If
        Next
    End With
    Set rngCel = Nothing
End Sub

四、在listview控件中排序

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
    With Me.ListView1
        .Sorted = True
        .SortOrder = 1
        '0为升序,1为降序,默认升序
        .SortKey = ColumnHeader.Index - 1
    End With
End Sub

你可能感兴趣的:(VBA自学应用)