Private Sub UserForm_Initialize()
Dim i
Dim itm As ListItem
Dim li
Me.ListView1.ColumnHeaders.Add 1, "Q", "QQ號", Me.ListView1.Width / 3 '添加第一列
Me.ListView1.ColumnHeaders.Add 2, "N", "昵稱", Me.ListView1.Width / 3, lvwColumnCenter '添加第二列
Me.ListView1.ColumnHeaders.Add 2, "D", "地區", Me.ListView1.Width / 3, lvwColumnRight '添加第二列
Me.ListView1.View = lvwReport '顯示外觀
Me.ListView1.Gridlines = True '是否有表格線
'For i = 2 To [A65535].End(xlUp).Row '使用集合的方法添加
' Set itm = Me.ListView1.ListItems.Add(Text:=Cells(i, 1))
' Set li = itm.ListSubItems.Add(Text:=Cells(i, 2)) '集合添加,就是添加新的一列
' Set li = itm.ListSubItems.Add(Text:=Cells(i, 3)) '添加在上一句的后面
'
'Next
For i = 2 To [A65535].End(xlUp).Row '使用數組的方法添加
Set itm = Me.ListView1.ListItems.Add() '先添加一個行對象,是除開標題(colunmheaders)行的行對象
itm.Text = Cells(i, 1) '行對象的第一列
itm.SubItems(1) = Cells(i, 2) '行對像的第二列
itm.SubItems(2) = Cells(i, 3) '行對像的第三列
Next
'subitems是一個string 數組
'ListSubItems 是一個集合
'me.ListView1.ColumnHeaders.Remove "D" 刪除key 是D的列,即此處的 地區 列
End Sub
'Me.ListView1.View = lvwIcon '普通視圖
'Me.ListView1.View = lvwList '列表視圖,上下排列,無表格線
'Me.ListView1.View = lvwSmallIcon '小圖標視圖
'Me.ListView1.View = lvwReport '報表視圖,有標題,可心顯示表格線
Me.ListView1.ListItems.Clear '清除所有列
'篩選功能其實就是寫個判斷,等於篩選框的值,再添加值即可
'從listview中輸入數據到表格中時,按列方向循環
For i = 1 To Me.ListView1.ColumnHeaders.Count '取列標題個數開始循環,先取第一列的標題,,再是第二列,第三列
Cells(1, i) = Me.ListView1.ColumnHeaders(i)
For j = 1 To Me.ListView1.ListItems.Count '行的循環
If i = 1 Then
Cells(j + 1, i) = Me.ListView1.ListItems(j).Text
Else
Cells(j + 1, i) = Me.ListView1.ListItems(j).SubItems(i - 1)
End If
Next
Next
'選取的行輸入到工作表中
Me.ListView1.SelectedItem '表示 正在選擇的行
Me.ListView1.SelectedItem.Text '第一列的值
Me.ListView1.SelectedItem.SubItems (1) '第二列的值
Me.ListView1.SelectedItem.SubItems (2) '第三列的值
'添加紅色字體行
直接用增加新的行
Set xxx = Me.ListView1.ListItems.Add()
xxx.SubItems(2) = 123
xxx.SubItems(3) = 234
xxx.ForeColor = RGB(255, 0, 0) '列表顏色。是第一列的顏色
xxx.Bold = True '粗體,也是第一列的
對於后面的要加色的話,用循環,且用集合對象才能設置顏色
For x = 2 To Me.ListView1.ColumnHeaders.Count - 1
xxx.ListSubItems(x).ForeColor = RGB(255, 0, 0)
xxx.ListSubItems(x).Bold = True
'批量刪除選擇的行,只針對listview,不刪除數據源
Me.ListView1.ListItems.Remove Me.ListView1.SelectedItem.Index '刪除單一行很簡單
For i = Me.ListView1.ListItems.Count To 1 Step -1
If Me.ListView1.ListItems(i).Selected Then '不帶復選框的選擇
Me.ListView1.ListItems.Remove i
' If Me.ListView1.ListItems(i).Checked Then '帶復選框的選擇
End If
Next
'給行加復選框
Me.ListView1.CheckBoxes = True '就帶上復選框
Me.ListView1.Sorted = True '允許排序
Me.ListView1.SortKey = Me.ListView1.ColumnHeader - 1 以第幾列排序
Me.ListView1.SortOrder = lvwAscending '升序,另一個是降序