vba-listview控件操作



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 '升序,另一個是降序






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM