新建一个excel到word同级目录 alt+f11打开vba窗口并新建模块 粘贴下方代码(修改一些必要参数) 回到excel表格界面,alt+f8选择执行该宏 注意要在信任中心开启运行vba宏
Sub 批量提取word表格数据到excel( )
Dim wdApp As Object , wdDoc As Object
Dim fso As Object , folder As Object , file As Object
Dim excelRow As Long , iRow As Long , iCol As Integer
Dim tableNo As Integer
Dim folderPath As String
tableNo = 1
excelRow = 1
folderPath = ActiveWorkbook.Path & "\"
Set fso = CreateObject( "Scripting.FileSystemObject" )
Set folder = fso.GetFolder( folderPath)
On Error Resume Next
Set wdApp = GetObject( , "Word.Application" )
If Err.Number <> 0 Then
Set wdApp = CreateObject( "Word.Application" )
End If
On Error GoTo 0
wdApp.Visible = False
For Each file In folder.Files
If ( fso.GetExtensionName( file.Path) = "doc" ) Or ( fso.GetExtensionName( file.Path) = "docx" ) Then
Set wdDoc = wdApp.Documents.Open ( file.Path)
If wdDoc.Tables.Count >= tableNo Then
With wdDoc.Tables( tableNo)
For iRow = 5 To 5
For iCol = 2 To 2
Cells( excelRow, iCol - 1 ) .Value = WorksheetFunction.Clean( Replace( .Cell( iRow, iCol) .Range.Text , vbCr, "" ) )
Next iCol
excelRow = excelRow + 1
Next iRow
For iRow = 3 To 3
For iCol = 5 To 5
Cells( excelRow - 1 , iCol - 3 ) .Value = WorksheetFunction.Clean( Replace( .Cell( iRow, iCol) .Range.Text , vbCr, "" ) )
Next iCol
excelRow = excelRow
Next iRow
End With
End If
wdDoc.Close SaveChanges: = False
End If
Next file
wdApp.Quit
Set wdDoc = Nothing
Set wdApp = Nothing
Set fso = Nothing
MsgBox "提取完毕!找到文件数量:" & folder.Files .Count- 2
End Sub