前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

ExcelVBA函数:将Listview中的ListItem,导出到word的表格中

qiguaw 2024-12-10 19:25:29 资源文章 32 ℃ 0 评论

效果如下:



导入为word表格:



核心代码:

Sub ExportListViewItemsToWord()

    Dim wdApp As Object
    Dim wdDoc As Object
    Dim wdTable As Object
    Dim item As ListItem
    Dim i As Integer
    
    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    On Error GoTo 0
    If wdApp Is Nothing Then
        Set wdApp = CreateObject("Word.Application")
    End If    
    wdApp.Visible = True    
    Set wdDoc = wdApp.Documents.Add
  
    Set wdTable = wdDoc.Tables.Add(wdDoc.Range, ListView1.ListItems.Count + 1, 7)

    wdTable.cell(1, 1).Range.text = "颜色"
    wdTable.cell(1, 2).Range.text = "数量"
    wdTable.cell(1, 3).Range.text = "合计数"
    wdTable.cell(1, 4).Range.text = "平均值"
    wdTable.cell(1, 5).Range.text = "中位数"
    wdTable.cell(1, 6).Range.text = "最大值"
    wdTable.cell(1, 7).Range.text = "最小值"
    
    ' 标题行对齐方式
    wdTable.cell(1, 1).Range.ParagraphFormat.Alignment = 0 
    For i = 2 To 7
        wdTable.cell(1, i).Range.ParagraphFormat.Alignment = 2
    Next i

    i = 2
    For Each item In ListView1.ListItems
        ' 设置颜色
        wdTable.cell(i, 1).Range.text = item.text
        wdTable.cell(i, 1).Shading.BackgroundPatternColor = RGB((item.foreColor And &HFF), (item.foreColor \ &H100 And &HFF), (item.foreColor \ &H10000 And &HFF))
        ' 加入需要的统计数据,便于分类,有的比
        wdTable.cell(i, 1).Range.ParagraphFormat.Alignment = 0
        wdTable.cell(i, 2).Range.text = item.SubItems(1) ' 数量
        wdTable.cell(i, 2).Range.ParagraphFormat.Alignment = 2
        wdTable.cell(i, 3).Range.text = item.SubItems(2) ' 合计数
        wdTable.cell(i, 3).Range.ParagraphFormat.Alignment = 2 
        wdTable.cell(i, 4).Range.text = item.SubItems(3) ' 平均值
        wdTable.cell(i, 4).Range.ParagraphFormat.Alignment = 2 
        wdTable.cell(i, 5).Range.text = item.SubItems(4) ' 中位数
        wdTable.cell(i, 5).Range.ParagraphFormat.Alignment = 2 
        wdTable.cell(i, 6).Range.text = item.SubItems(5) ' 最大值
        wdTable.cell(i, 6).Range.ParagraphFormat.Alignment = 2 
        wdTable.cell(i, 7).Range.text = item.SubItems(6) ' 最小值
        wdTable.cell(i, 7).Range.ParagraphFormat.Alignment = 2
        
        i = i + 1
    Next item
    
    ' 添加表格
    With wdTable.Borders
        .InsideLineStyle = 1
        .OutsideLineStyle = 1 
        .InsideColor = RGB(0, 0, 0)
        .OutsideColor = RGB(0, 0, 0)
    End With
    
    wdTable.columns.AutoFit
    
    Set wdTable = Nothing
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表