Ответ взят из: http://www.mrexcel.com/forum/showthread.php?t=36875
Вот некоторый код, который считывает таблицу из Word в активную рабочую таблицу Excel. Он запрашивает у вас слово word и номер таблицы, если Word содержит более одной таблицы.
Sub ImportWordTable()
Dim wdDoc As Object
Dim wdFileName As Variant
Dim TableNo As Integer 'table number in Word
Dim iRow As Long 'row index in Excel
Dim iCol As Integer 'column index in Excel
wdFileName = Application.GetOpenFilename("Word files (*.doc),*.doc", , _
"Browse for file containing table to be imported")
If wdFileName = False Then Exit Sub '(user cancelled import file browser)
Set wdDoc = GetObject(wdFileName) 'open Word file
With wdDoc
TableNo = wdDoc.tables.Count
If TableNo = 0 Then
MsgBox "This document contains no tables", _
vbExclamation, "Import Word Table"
ElseIf TableNo > 1 Then
TableNo = InputBox("This Word document contains " & TableNo & " tables." & vbCrLf & _
"Enter table number of table to import", "Import Word Table", "1")
End If
With .tables(TableNo)
'copy cell contents from Word table cells to Excel cells
For iRow = 1 To .Rows.Count
For iCol = 1 To .Columns.Count
Cells(iRow, iCol) = WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text)
Next iCol
Next iRow
End With
End With
Set wdDoc = Nothing
End Sub
Этот макрос должен быть вставлен в Excel (не Word) и помещен в стандартный модуль макросов, а не в модули кода событий рабочей таблицы или рабочей книги. Для этого перейдите в VBA (клавиатура Alt-TMV), вставьте модуль макроса (Alt-IM) и вставьте код в область кода. Запустите макрос из интерфейса Excel, как и любой другой (Alt-TMM).
Если ваш документ содержит много таблиц, как в случае, если ваша таблица страниц на 100+ фактически является отдельной таблицей на каждой странице, этот код можно легко изменить, чтобы прочитать все таблицы. Но сейчас я надеюсь, что это все одна непрерывная таблица и не потребует никаких изменений.
Keep Excelling.
Damon
VBAexpert Excel Consulting
(Моя другая жизнь: http://damonostrander.com)