VBA: 从 Word 表格提取数据到 Excel
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 应用程序对象。
原文地址: https://www.cveoy.top/t/topic/jr7z 著作权归作者所有。请勿转载和采集!