一个word中有多个表格的信息需要提取
时间: 2023-08-15 09:05:24 浏览: 201
如果Word文档中包含多个表格,你可以使用循环来遍历每个表格并将其数据提取到Excel中。以下是一个示例代码:
```
Sub ExtractWordData()
Dim wrdApp As Object
Dim wrdDoc As Object
Dim tbl As Object
Dim i As Long, j As Long, k As Long
Dim ws As Worksheet
'创建一个新的Word应用程序对象
Set wrdApp = CreateObject("Word.Application")
'禁用屏幕更新
wrdApp.ScreenUpdating = False
'打开Word文档
Set wrdDoc = wrdApp.Documents.Open("C:\your\file\path\filename.docx")
'将每个表格的数据复制到Excel
Set ws = ThisWorkbook.Sheets(1)
k = 1
For Each tbl In wrdDoc.Tables
For i = 1 To tbl.Rows.Count
For j = 1 To tbl.Columns.Count
ws.Cells(k, j).Value = tbl.Cell(i, j).Range.Text
Next j
k = k + 1
Next i
Next tbl
'关闭Word文档和应用程序对象
wrdDoc.Close
wrdApp.Quit
'启用屏幕更新
Application.ScreenUpdating = True
'清空对象变量
Set wrdDoc = Nothing
Set wrdApp = Nothing
Set tbl = Nothing
Set ws = Nothing
End Sub
```
在上面的示例代码中,我们使用了一个ForEach循环来遍历Word文档中的每个表格。然后,我们使用嵌套的For循环将每个表格中的数据复制到Excel工作表中。
请注意,如果Word文档中包含多个表格,则可能需要调整Excel工作表中的单元格位置以适应所有表格的数据。
阅读全文
相关推荐
; 提取查询结果中的表格内容
FileDelete, result.txt
Loop, %TotalPage%
{
MatchItemNum := 0
Loop, Read, Html\%A_Index%.html, result.txt
{
; 抽取表格字段
If (A_LoopReadLine ~= "i)[^<]+]+class=""calc""")
{
MatchItemNum++
Field := RegExReplace(A_LoopReadLine,"i)^[^>]+>()?([^<]+)<.+","$2$3")
StringReplace, Field, Field, , , All
; 表格中的字段每5个组成一条记录
ModNum := Mod(MatchItemNum,5)
If (ModNum = 1)
FileAppend, % "n" Field "t"
else
{
If (ModNum <> 0)
FileAppend, % Field "t"
else
FileAppend, % "http://gis2.sinica.edu.tw/place/" SubStr(Field,1,-4)
}
}
}
}
MsgBox, 整理完毕