楼主 wise |
Q: VBA中如何使用listView控件? A:以下这个例子将带你入门:
- Private Sub UserForm_Initialize()
- Dim ITM As ListItem
- ListView1.ColumnHeaders.Clear '清除listview1中的标题
- ListView1.ListItems.Clear '清除listview1中的内容
- ListView2.ColumnHeaders.Clear '清除listview2中的标题
- ListView2.ListItems.Clear '清除listview2中的内容
- With Sheets("欧洲")
-
- ListView1.ColumnHeaders.Add 1, , .Cells(1, 1), ListView1.Width / 9 '添加第一列的标题
- ListView1.ColumnHeaders.Add 2, , .Cells(1, 2), ListView1.Width / 9 '添加第二列的标题
- ListView1.ColumnHeaders.Add 3, , .Cells(1, 3), ListView1.Width / 9 '添加第三列的标题
- ListView1.ColumnHeaders.Add 4, , .Cells(1, 4), ListView1.Width / 9 '添加第四列的标题
- ListView1.ColumnHeaders.Add 5, , .Cells(1, 5), ListView1.Width / 9 '添加第五列的标题
- ListView1.ColumnHeaders.Add 6, , .Cells(1, 6), ListView1.Width / 9 '添加第六列的标题
- ListView1.ColumnHeaders.Add 7, , .Cells(1, 7), ListView1.Width / 9 '添加第七列的标题
- ListView1.ColumnHeaders.Add 8, , .Cells(1, 8), ListView1.Width / 9 '添加第八列的标题
- ListView1.ColumnHeaders.Add 9, , .Cells(1, 9), ListView1.Width / 9 '添加第九列的标题
-
- ListView1.View = lvwReport '显示为报表视图
- ListView1.Gridlines = True '方格线
- ListView1.FullRowSelect = True '选取整行
- ListView1.CheckBoxes = True '复选框
- ListView1.BackColor = RGB(255, 199, 9) '背景颜色
- ListView1.HotTracking = True '热键
-
- For i = 2 To .[A65536].End(xlUp).Row
-
- Set ITM = ListView1.ListItems.Add() '为listview1控件里面的行添加内容
- ITM.Text = .Cells(i, 1) '为行标赋值
- ITM.SubItems(1) = .Cells(i, 2)
- ITM.SubItems(2) = .Cells(i, 3)
- ITM.SubItems(3) = .Cells(i, 4)
- ITM.SubItems(4) = .Cells(i, 5)
- ITM.SubItems(5) = .Cells(i, 6)
- ITM.SubItems(6) = .Cells(i, 7)
- ITM.SubItems(7) = .Cells(i, 8)
- ITM.SubItems(8) = .Cells(i, 9)
- '=======================================================
- With ITM.ListSubItems.Item(2) '为里面的第三列调整相应的字体大小及颜色
- If .Text < 2 Then
- .ForeColor = RGB(255, 0, 0) '字体颜色为红色
- Else
- .Bold = True '字体为粗体
- .ForeColor = RGB(0, 0, 255) '字体颜色为蓝色
- End If
- End With
- With ITM.ListSubItems.Item(8) '为里面的第九列调整相应的字体大小及颜色
- If .Text > 18 Then
- .ForeColor = RGB(255, 0, 0)
- Else
- .Bold = True
- .ForeColor = RGB(0, 0, 255)
- End If
- End With
- '=========================================================
- Next i
- End With
-
- With Sheets("亚洲")
-
- ListView2.ColumnHeaders.Add 1, , .Cells(1, 1), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 2, , .Cells(1, 2), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 3, , .Cells(1, 3), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 4, , .Cells(1, 4), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 5, , .Cells(1, 5), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 6, , .Cells(1, 6), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 7, , .Cells(1, 7), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 8, , .Cells(1, 8), ListView2.Width / 9
- ListView2.ColumnHeaders.Add 9, , .Cells(1, 9), ListView2.Width / 9
-
- ListView2.View = lvwReport
- ListView2.Gridlines = True
- ListView2.FullRowSelect = True '整行选取
- ListView2.CheckBoxes = True '复选框
- ListView2.BackColor = RGB(255, 199, 9) '背景颜色
- ListView2.HotTracking = True '热键
-
- For i = 2 To .[A65536].End(xlUp).Row
- Set ITM = ListView2.ListItems.Add()
- ITM.Text = .Cells(i, 1)
- ITM.SubItems(1) = .Cells(i, 2)
- ITM.SubItems(2) = .Cells(i, 3)
- ITM.SubItems(3) = .Cells(i, 4)
- ITM.SubItems(4) = .Cells(i, 5)
- ITM.SubItems(5) = .Cells(i, 6)
- ITM.SubItems(6) = .Cells(i, 7)
- ITM.SubItems(7) = .Cells(i, 8)
- ITM.SubItems(8) = .Cells(i, 9)
-
- '=======================================================
-
- With ITM.ListSubItems.Item(2)
- If .Text < 3 Then
- .ForeColor = RGB(255, 0, 0)
- Else
- .Bold = True
- .ForeColor = RGB(0, 0, 255)
- End If
- End With
- With ITM.ListSubItems.Item(8)
- If .Text >= 12 Then
- .ForeColor = RGB(255, 0, 0)
- Else
- .Bold = True
- .ForeColor = RGB(0, 0, 255)
- End If
- End With
-
- '=======================================================
- Next i
- End With
- End Sub
listview控件的小例子.rar |