Создаю новую тему, так как старая тема: "Запуск AutoCAD через Excel" закрыта и отправлено в архив. Вопрос в ошибке проявляющая при выполнении скрипта VBA "Microsoft Excel ожидает, пока другое приложение завершит действие OLE." Скрипт VBA:
Скрипт работал пока файл AutoCAD весил не много, сейчас файл весит 29 Мбайт. Прошу помочь в решении данной проблемы (я понимаю, что файл долго загружается и происходит завершение процесса) ? Возможно решения вопроса: Ждать до конца выполнения exe, открываемого из excel
Ошибка означает, что автокад не отвечает больше минуты. Если файл большой, возможно проще сделать так. При наличии файла через командную строку открыть и выйти из процедуры .Повторить запуск макроса при открытом файле.
Если проблема в том, что слишком долго открывается DWG файл, то предлагаю его открывать асинхронно с помощью Shell. При этом код в Excel просто запустит открытие файла в AutoCad и завершится, не дожидаясь завершения этого процесса. Если по каким-то причинам Вам нужно, чтобы VBA-код в Excel при этом дожидался открытия dwg, то уточните это.
Ошибка "Microsoft Excel ожидает, пока другое приложение завершит действие OLE."
Самое интересное в том, что если сделать:
1. Запустить файл "AutoCAD" и оставить его открытым. 2. Запустить "второй" скрипт VBA то файл "AutoCAD" запускается и выводит: открыть файл только для чтения ? Нажимаем ОК и файл загружается.
Проблема в процессе загрузки файла autoCAD через скрипт VBA
ediczr написал: Ошибка "Microsoft Excel ожидает, пока другое приложение завершит действие OLE."
Возможно ли у Вас, что Autocad при запуске VBA кода что-то еще грузит или выполняет? Закройте все окна Autocad и в пошаговом режиме отладки кода по нажатию F8 определите, на какой строчке кода возникает проблема.
И еще на всякий случай добавьте ниже строки Set Acad = CreateObject("AutoCAD.Application") такую вот строчку кода If Err Then MsgBox "Ошибка регистрации AutoCAD", vbCritical, "Сбой!": Exit Sub
Закройте все окна Autocad и в пошаговом режиме отладки кода по нажатию F8 определите, на какой строчке кода возникает проблема.
Программа AutoCAD закрыта . При проверки кода с пошаговым выполнением скрипта: Ошибка: "Microsoft Excel ожидает, пока другое приложение завершит действие OLE."
Попробовал поменять имя файла autoCAD на имя которого нет, для выполнения функции если нет то создать новый файл autoCAD. Происходит тоже самое, что и выше переход:
Так, уже теплее. Теперь откройте Автокад вручную и не загружайте файл. И снова пошагово по F8 пройдитесь по коду. Добавьте только в код строку из сообщения #8
И еще на всякий случай добавьте ниже строки Set Acad = CreateObject("AutoCAD.Application") такую вот строчку кода If Err Then MsgBox "Ошибка регистрации AutoCAD", vbCritical, "Сбой!": Exit Sub
Так как в картинке сообщения #12 Acad = Nothing, то у Вас по каким-то причинам в реестре оказался незарегистрирован корректно Autocad. Поэтому не работает CreateObject("AutoCAD.Application"). Такое чинится обычно через Восстановление приложения, если это есть в Autocad, или переустановкой Autocad. Но не будем торопиться. Вижу из сообщения #11 что в VBE-References установлена ссылка на AutoCAD 2012 Type Library, поэтому попробуйте еще такую версию кода:
Так, уже теплее. Теперь откройте Автокад вручную и не загружайте файл. И снова пошагово по F8 пройдитесь по коду. Добавьте только в код строку из сообщения #8
1. Открыл только "морду" AutoCAD. 2. Добавил строчку (смотреть ниже) в скрипт #4 (17 Окт 2016 00:55:32)
3. При открытой "морде" AutoCAD файл запускается и работает. 4. Если "AutoCAD" не запущен, то происходит остановка выполнения скрипта и выводит ошибку. Остановка выполнения скрипта:
Вижу из сообщения #11 что в VBE-References установлена ссылка на AutoCAD 2012 Type Library, поэтому попробуйте еще такую версию кода:
1. Открыл только "морду" AutoCAD. 2. Запустил скрипт #16 (17 Окт 2016 11:32:31) 3. При открытой "морде" AutoCAD файл запускается и работает. 4. Если "AutoCAD" не запущен, то происходит остановка выполнения скрипта и выводит ошибку.
Ни CreateObject() ни New AcadApplication у Вас не работают. И это никак не связано с размером DWG файла Отключайте все ссылки на AutoCAD в VBE-References. И пробуйте тогда так:
Это радует, что сработало! Спасибо и Вам - было приятно общаться: оперативно всё протестировано с четкой трассировкой, наглядные скриншоты сообщений и даже переменных (Locals), что было приятным бонусом. Удачи Вам!
Здравствуйте извините если у меня "не коректный русский" , Я прошлась по вашим обяснениям, но никак не могу открыть автокад через excel . влияет ли как-то если у меня windows 10? и на другом комп. у меня autocad LT Я знаю что "макро" не работает в этой версии но не ужеле я не могу упровлять им через EXCEL? Буду рада помощи спасибо!
LT управлять не сможете так как он не поддерживает VB.
Как вариант автоматизации для LT в экселе можете генерировать scr-файлы (текстовый файл, в котором записаны команды консоли автокада, на самом деле при должном уровне владения это очень мощная вещь). Насколько я помню, LT их поддерживает.
Но даже в этом случае функционал будет сильно ограничен так как через консоль нет возможности менять динамические атрибуты блоков (ну раньше так было, может в последних версиях что-то изменилось, но вряд ли).
В обычном акаде это решалось пользовательской командой на AutoLISP, но LT LISP так же не поддерживает.