Полный код не стал выкладывать, суть такая: есть шаблон в ворде, в шаблоне таблица у которой есть только шапка. Процедура открывает этот шаблон и эксель файл, добавляет новую строку в таблице вордовского шаблона и из эксель, через цикл информация копируется в соответствующие ячейки добавленной строки. Проблема в том что вновь добавленные строки копируют формат из предыдущей, т.е. из шапки, а мне нужно по-другому, пытался это дело по-всякому решить, не получается, подскажите товарищи в чём загвоздка? Ошибку выдаёт на строке с .Font.Size = 10
Код
Sub Содержание()
Dim objWrdApp As Object, objWrdDoc As Object
Set objWrdApp = CreateObject("Word.Application")
objWrdApp.Visible = True
Set objWrdDoc = objWrdApp.Documents.Open("L:\Шаблон.docx")
objWrdDoc.Tables(1).Rows(1).Select
With objWrdDoc.Tables(1).Rows(1)
.Font.Size = 10
.Font.Bold = wdToggle
.ParagraphFormat.Alignment = wdAlignParagraphLeft
End With
objWrdDoc.Close True
'закрываем приложение Word
objWrdApp.Quit
'очищаем переменные Word - обязательно!
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
End Sub
The_Prist написал: Как из Excel обратиться к другому приложению
Спасибо, что я оттуда и и взял костяк кода, с вашего сайта(если комментарии к коду не удалил, вы бы точно узнали)! Да, конечно я понимаю, что таблицы в Excel и Word разные по свойствам. Но прямого решения в поиске я не нашёл, и решил пробовать по аналогии, не вышло.
Sanja написал: RAN написал: Используйте вместо них их числовые значения.
Использовал, та же ошибка !
Код
Sub Содержание()
Dim objWrdApp As Object, objWrdDoc As Object
Set objWrdApp = CreateObject("Word.Application")
objWrdApp.Visible = True
Set objWrdDoc = objWrdApp.Documents.Open("L:\Шаблон.docx")
objWrdDoc.Tables(1).Rows(1).Select
With objWrdDoc.Tables(1).Rows(1)
.Font.Bold = 9999998
.ParagraphFormat.Alignment = 0
End With
objWrdDoc.Close True
'закрываем приложение Word
objWrdApp.Quit
'очищаем переменные Word - обязательно!
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
End Sub
Михаил Лебедев написал: Запись макроса из ворда - дает точно такую же строку, только через свойство Selection
Дело в том, что мы обращаемся к Таблице другого приложения, у которого свойства Таблицы отличаются от Exel-ких, в том и загвоздка, как объяснить экселю что в таблице ворда надо изменить размер шрифта определённой строки/ячейки.
RAN написал: Excel не знает переменных Word (wdToggle, wdAlignParagraphLeft) Используйте вместо них их числовые значения.
Оказалось что знает!
Код
Sub Содержание()
Dim objWrdApp As Object, objWrdDoc As Object
Set objWrdApp = CreateObject("Word.Application")
objWrdApp.Visible = True
Set objWrdDoc = objWrdApp.Documents.Open("L:\Шаблон.docx")
With objWrdDoc.Tables(1).Rows(1).Range
.Font.Size = 10
.Font.Bold = wdToggle
.ParagraphFormat.Alignment = wdAlignParagraphLeft
End With
objWrdDoc.Close True
'закрываем приложение Word
objWrdApp.Quit
'очищаем переменные Word - обязательно!
Set objWrdDoc = Nothing: Set objWrdApp = Nothing
End Sub