Всем привет! Я программно (из Excel) добавляю строку в таблицу документа Word, но строка не добавляется - происходит run-time ошибка "Object doesn't support this property or method". Что в моем коде нет так?
Я подключил библиотеку для работы с Word: Tools - References - Microsoft Word 16.0 Object Library.
Макрос
Sub ToWord()
Dim WordApp As Word.Application, strFullNameDotx As String
Dim lngRowNumber As Long
lngRowNumber = 5
strFullNameDotx = ThisWorkbook.Path & "\" & "Шаблон.dotx"
Set WordApp = New Word.Application
WordApp.Visible = True
WordApp.Documents.Add strFullNameDotx
WordApp.ActiveDocument.Tables(1).Rows(1).Select
Selection.InsertRowsBelow lngRowNumber
End Sub
Проблема в этой строке:
Selection.InsertRowsBelow lngRowNumber
В экселе, как и в ворде, тоже есть объект "Selection". В данной строке вы обращаетесь к объекту "Selection" экселя, а не ворда. В экселе, у объекта "Selection" нет метода "InsertRowsBelow", что и приводит к ошибке.
Правильно так:
WordApp.Selection.InsertRowsBelow lngRowNumber
PS. На самом деле в экселе нет объекта "Selection". Это я написал, чтобы проще можно было воспринять информацию. В экселе "Selection" - это просто слово, которое превращается в нужный объект в зависимости от ситуации. Например, если выделена ячейка на листе, то "Selection" это объект "Range". Если выделен рисунок, то "Selection" это объект "Shape".
Ура, заработало!