Copy data from multiple MS Word files to Excel using VBA
Solution 1:
I have tested it. It actually works works well. Several points to have in mind before using the current version of the code:
- It should be added to Word VBA, not Excel or other (this might be the reason why you received the "object required" error).
- It processes just .docx
- It processes all actual MS Word tables, not pictures that might look like tables.
I have slightly modified the code to make it a bit more readable, at least for me, coming from the Excel VBA world. Your should always use Option Explicit
!
Option Explicit
Sub Word_tables_from_many_docx_to_Excel()
Dim myPath As String, myFile As String, myText As String
Dim xlRow As Long, xlCol As Long
Dim t As Table
Dim r As Row
Dim c As Cell
Dim xl As Object
Set xl = CreateObject("excel.application")
xl.Workbooks.Add
xl.Visible = True
'Here put your path where you have your documents to read:
myPath = "C:\Temp\" 'End with '\'
myFile = Dir(myPath & "*.docx")
xlRow = 1
Do While myFile <> ""
Documents.Open myPath & myFile
For Each t In ActiveDocument.Tables
For Each r In t.Rows
xlCol = 1
For Each c In r.Range.Cells
myText = c.Range.Text
myText = Replace(myText, Chr(13), "")
myText = Replace(myText, Chr(7), "")
xl.ActiveWorkbook.ActiveSheet.Cells(xlRow, xlCol) = myText
xlCol = xlCol + 1
Next c
xl.ActiveWorkbook.ActiveSheet.Cells(xlRow, xlCol + 1) = myFile
xlRow = xlRow + 1
Next r
xlRow = xlRow + 1
Next t
ActiveWindow.Close False
myFile = Dir
Loop
End Sub