Excel это не сложно

Основные форумы => Вопросы по Word и VBA => Тема начата: Бахтиёр от 14.09.2018, 15:36:48



Название: Word-файл, созданный макросом Excel, не открывается, даёт ошибку
Отправлено: Бахтиёр от 14.09.2018, 15:36:48
Добрый день.
Запускаю такой макрос из книги Excel:
Sub dddd()
Set wd1 = CreateObject("Word.Document")
Set wd2 = wd1.Application
wd2.Selection.Typetext "123 абв"
wd1.SaveAs "D:\1\123абв.docm", wdFormatXMLDocumentMacroEnabled
wd2.Quit
End Sub

Word-файл, созданный этим кодом, не открывается, даёт ошибку - см.скрин

В чём причина?


Название: Re:Word-файл, созданный макросом Excel, не открывается, даёт ошибку
Отправлено: Дмитрий Щербаков(The_Prist) от 14.09.2018, 19:49:06
Вообще, ошибка классическая. Советую очень внимательно ознакомиться со статьей: Как из Excel обратиться к другому приложению (https://www.excel-vba.ru/chto-umeet-excel/kak-iz-excel-obratitsya-k-drugomu-prilozheniyu/)
И вот с этой статьей тоже: Variable not defined или что такое Option Explicit и зачем оно нужно? (https://www.excel-vba.ru/chto-umeet-excel/variable-not-defined-ili-chto-takoe-option-explicit-i-zachem-ono-nuzhno/)
Избежите многих ошибок и лишних раздумий. Если бы директива Option Explicit была у Вас включена - то VBA сразу бы подсветил Вам необъявленную wdFormatXMLDocumentMacroEnabled и Вы бы догадались, что Excel про неё не знает. Замените её на 13. Но и код я бы еще чуть подправил, т.к. есть вероятность, что Word выдает какое-либо сообщение перед закрытием. Поэтому так:
Код: (vb)
Sub dddd()
Set wd1 = CreateObject("Word.Document")
Set wd2 = wd1.Application
wd2.Selection.Typetext "123 абв"
wd1.SaveAs "C:\1\123абв.docm", 13 ' wdFormatXMLDocumentMacroEnabled
wd2.DisplayAlerts = False
wd1.Close False
On Error Resume Next
wd2.Quit False
End Sub



Название: Re:Word-файл, созданный макросом Excel, не открывается, даёт ошибку
Отправлено: Бахтиёр от 15.09.2018, 07:59:22
Дмитрий, спасибо !