VBA: 从 Word 表格提取数据到 Excel

本教程介绍如何使用 VBA 代码从 Word 文档中的所有表格提取指定单元格的内容,并将数据按行拆分后写入 Excel 文件。示例代码展示了如何获取表格的第 (1, 4) 和 (4, 2) 单元格内容,并将其分别写入 Excel 文件的对应列。

Sub GetTableContent()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim wdTable As Object
    Dim i As Long, j As Long, k As Long
    Dim rowCnt As Long, colCnt As Long
    Dim tblRow As Object
    Dim tblCell As Object
    Dim excelApp As Object
    Dim excelWb As Object
    Dim excelWs As Object
    Dim excelRow As Long
    
    '创建 Word 应用程序对象
    Set wdApp = CreateObject("Word.Application")
    '打开 Word 文档
    Set wdDoc = wdApp.Documents.Open("C:\Test.docx")
    
    '创建 Excel 应用程序对象
    Set excelApp = CreateObject("Excel.Application")
    '打开 Excel 文件
    Set excelWb = excelApp.Workbooks.Open("C:\Test.xlsx")
    '选择工作表
    Set excelWs = excelWb.Sheets(1)
    
    i = 1 '行计数器
    '遍历 Word 文档中的所有表格
    For Each wdTable In wdDoc.Tables
        '获取表格行列数
        rowCnt = wdTable.Rows.Count
        colCnt = wdTable.Columns.Count
        '遍历表格中的所有行
        For j = 1 To rowCnt
            '获取指定单元格内容
            Set tblRow = wdTable.Rows(j)
            Set tblCell = tblRow.Cells(1)
            excelWs.Cells(i, 1).Value = tblCell.Range.Text
            Set tblCell = tblRow.Cells(4)
            excelWs.Cells(i, 2).Value = tblCell.Range.Text
            Set tblCell = tblRow.Cells(2)
            excelWs.Cells(i, 3).Value = tblCell.Range.Text
            i = i + 1 '行计数器加 1
        Next j
    Next wdTable
    
    '保存 Excel 文件
    excelWb.Save
    '关闭 Excel 应用程序对象
    excelApp.Quit
    
    '关闭 Word 文档
    wdDoc.Close
    '关闭 Word 应用程序对象
    wdApp.Quit
End Sub

在上面的代码中,我们首先创建了一个 Word 应用程序对象和一个 Excel 应用程序对象,然后分别打开了需要处理的 Word 文档和 Excel 文件。接着,我们遍历 Word 文档中的所有表格,并在每个表格中遍历所有行,获取指定单元格的内容并写入 Excel 文件中。最后,保存 Excel 文件并关闭 Excel 应用程序对象,关闭 Word 文档和 Word 应用程序对象。
VBA: 从 Word 表格提取数据到 Excel

原文地址: https://www.cveoy.top/t/topic/jr7z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录