Eu testei isso. Na verdade funciona bem. Vários pontos em mente antes de usar a versão atual do código:
- Ele deve ser adicionado ao Word VBA, não ao Excel ou outro (essa pode ser a razão pela qual você recebeu o erro "objeto necessário").
- Ele processa apenas .docx
- Ele processa todas as tabelas reais do MS Word, não imagens que podem se parecer com tabelas.
Eu modifiquei um pouco o código para torná-lo um pouco mais legível, pelo menos para mim, vindo do mundo do Excel VBA. Você deve sempre usar 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