Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
25.01.2021, 13:34:21

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
31 746 Сообщений в 5 102 Тем от 11 635 Пользователей
Последний пользователь: ermictiolliz
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Word и VBA
| | |-+  Word-файл, созданный макросом Excel, не открывается, даёт ошибку
Страниц: [1]   Вниз
Печать
Автор Тема: Word-файл, созданный макросом Excel, не открывается, даёт ошибку  (Прочитано 2967 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Бахтиёр
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« : 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-файл, созданный этим кодом, не открывается, даёт ошибку - см.скрин

В чём причина?
« Последнее редактирование: 14.09.2018, 15:40:47 от Бахтиёр » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +458/-0
Офлайн Офлайн

Сообщений: 5 387



Просмотр профиля WWW
« Ответ #1 : 14.09.2018, 19:49:06 »

Вообще, ошибка классическая. Советую очень внимательно ознакомиться со статьей: Как из Excel обратиться к другому приложению
И вот с этой статьей тоже: Variable not defined или что такое Option Explicit и зачем оно нужно?
Избежите многих ошибок и лишних раздумий. Если бы директива 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

« Последнее редактирование: 14.09.2018, 19:51:17 от Дмитрий Щербаков(The_Prist) » Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Бахтиёр
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« Ответ #2 : 15.09.2018, 07:59:22 »

Дмитрий, спасибо !
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru