Таблица MS Word - Запрашиваемый элемент коллекции не существует - PullRequest
0 голосов
/ 19 июня 2019

Я искал этот форум и нашел несколько статей, связанных с тем же сообщением об ошибке.Тем не менее, ни одна из них не связана с моей проблемой.

У меня есть таблица в Word со следующими свойствами:

wddoc.tables(1).Rows.Count : 15 
wddoc.tables(1).Columns.Count : 4 

Я пытался скопировать таблицу в Excel, используя следующий код:

For m = 1 To 15
For l = 1 To 4
ActiveSheet.Cells(m, l) = wdDoc.Tables(1).Cell(m, l)
Next l
Next m

Код работал нормально для первых трех строк, но когда он доходил до четвертой строки (m = 4, l = 1), он выдавал заголовочное сообщение об ошибке.Что дает?

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Чтобы получить правильные результаты из таблицы Word с объединенными или разделенными ячейками, используйте код, подобный следующему:

Dim wdCell As Object
For Each wdCell In wddoc.Tables(1).Range.Cells
  With wdCell
    ActiveSheet.Cells(.RowIndex, .ColumnIndex) = .Range.Text
  End With
Next
0 голосов
/ 19 июня 2019

Вы можете обрабатывать различное количество ячеек в каждом ряду, скажем, от разбиений или слияний, примерно так:

For m = 1 To wdDoc.Tables(1).Rows.Count
    For l = 1 To wdDoc.Tables(1).Rows(m).Cells.Count
        ActiveSheet.Cells(m, l) = wdDoc.Tables(1).Cell(m, l)
    Next l
Next m

А потом немного почистить

With wdDoc.Tables(1)
    For m = 1 To .Rows.Count
        For l = 1 To .Rows(m).Cells.Count
            ActiveSheet.Cells(m, l) = .Cell(m, l)
        Next l
    Next m
End With

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...