Страницы: 1
RSS
Обращение к таблице ворд из экселя через VBA
 
Добрый день! Помогите пожалуйста, есть таблица в Ворде, я хочу через макрос из экселя сделать, что бы шапка таблицы дублировалась на всех страницах. Пишу следующий макрос:
Код
objDoc.Tables(2).Range.Rows("1:3").headingFormat = wdToggle

С помощью этой команды я хочу обратиться к первым 3 строкам таблицы(2) и задать им свойство формата wdToggle, где то у меня ошибка в обращении...
 
А откуда Excel знает, что такое wdToggle?
Владимир
 
sokol92, а как сделать что бы узнал?
Изменено: DopplerEffect - 18.08.2019 13:59:48
 
Скажу Вам по секрету - это 9999998. Поставьте непосредственно это число вместо wdToggle. Аналогичная тема.
Изменено: sokol92 - 18.08.2019 14:07:17
Владимир
 
sokol92, Спасибо, это заменил, но ошибка сохраняется, подозреваю, что ему не нравится запись Rows("1:3")
 
Цитата
sokol92 написал:
Поставьте непосредственно это число вместо wdToggle.
Вот действенный совет, но некорректный. Лучщше всегo прописать константу
Код
Const wdToggle = 9999998
это сделает код и рабочим и читаемым
Есть альтернатива, подключить библиотеку Word к Excel, но это в данном случае еще хуже чем прописать прямо число.
Само значение константы выяснить можно в Word или набрав "? wdToggle" в Immediately или в Object Browser (alt+f11 , f2)
)
По вопросам из тем форума, личку не читаю.
 
БМВ,Спасибо, но ошибка это была не единственная( у меня сейчас выходит Type mismatch
Код
Const wdToggle = 9999998
objDoc.Tables(2).Range.Rows("1:3").headingFormat = wdToggle
 
Попробуйте так:
Код
objDoc.Tables(2).Rows(3).HeadingFormat = True

Тогда и константа не понадобится. :)  
Изменено: sokol92 - 18.08.2019 14:42:04
Владимир
 
sokol92, теперь выдает, что отсутствует доступ к отдельным строкам, т.к. таблица имеет объединенные ячейки. Создал пример во вложении.
 
Модераторы сейчас нададут по шапке и будут правы - здесь не форум по Word.
Попробуйте (я точно не спец по макросам Word):
Код
Sub test()

Dim objWord As Object

adr = ThisWorkbook.Path

FileSt = adr & "\Тест.docx"

Set objWord = CreateObject("Word.Application")
Set objdoc = objWord.Documents.Open(FileSt)
objWord.Visible = True

objdoc.Range(objdoc.Tables(1).Cell(1, 1).Range.Start, objdoc.Tables(1).Cell(3, 8).Range.End).Select
objWord.Selection.Rows.HeadingFormat = True

End Sub
Владимир
 
Код
With objdoc
.Range(.Tables(1).Cell(1, 1).Range.Start, .Tables(1).Cell(3, 8).Range.End).Rows.HeadingFormat = True
end with 
По вопросам из тем форума, личку не читаю.
 
Спасибо! Работает)
Страницы: 1
Наверх