ListView控件基本操作
一、找到ListView控件
工具——附加控件——Microsoft ListView Control。
二、Listview控件显示数据
- 首先我们插入一个ListView控件,如图所示。
- 数据如图所示
- 然后再对应事件中插入如下代码
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