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