|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как с помощью VBA в Exel подключить AutoCAD. У меня работает через раз. Пример во вложении
Регистрация: 10.11.2008
Сообщений: 10
|
||
Просмотров: 6949
|
|
||||
Регистрация: 10.11.2008
Сообщений: 10
|
А в ответ тишина... Странно, что программа работает, но со второго раза
Думал, что проблема в том, что быстрый запуск АвтоКада запущен - убрал ... не помогло Знаю, что проблемма зарыта где то зделся Цитата:
Цитата:
Второй раз клацаем на кнопоньке - и все гуд... работает уже дальше без проблем... не могу понять почему Есть предположение, что в момент обращения к программе какая то служба не запущена, а после инициализации она запускается и начинает работать. Интересно какая это служба, что бы включить ее на постоянную основу Версия AutoCAD 16 -я AutoCAD.Application.16 или 2006 - 2008. Версия Windows Vista, на ХР тоже самое. Так как у меня стоит лицензионная 2010 - я версия и она мне не нравится из за того что тормозит при редактировании большого МТекста, я сделал жесткую привязку к 2006-му. Хотя можно сделать Set acadApp = GetObject(sFileName) и тогда запускается без проблем , но в 2010-й версии, а поменять на то, что бы запускалась 2006 мне не удалось. Последний раз редактировалось pungarov, 24.02.2010 в 15:57. |
|||
![]() |
|
||||
Регистрация: 10.11.2008
Сообщений: 10
|
|
|||
![]() |
|
||||
Вода - моя работа Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638
|
Ты знаешь, я
Цитата:
Цитата:
![]()
__________________
Нерешаемых проблем не бывает. |
|||
![]() |
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692
|
Цитата:
Код:
Если использовать Set acadApp = GetObject(, "AutoCAD.Application.16") и Set acadApp = CreateObject("AutoCAD.Application.16"), то надо объявлять acadApp as object ("позднее связывание")
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
![]() |
|
||||
Регистрация: 10.11.2008
Сообщений: 10
|
Цитата:
Dim acadApp As New AcadApplication New - означает новый экземпляр приложения, а раннее связывание у нас реализовано следующим образом Dim acadApp As AcadApplication Вместо Dim acadApp As Object Правда у тебя ложна быть подключена библиотека "Autocad 2... Type Librare" KronSerg я не понял, каким образом ты забил апострофами и заработало, можно с этого места поподробнее. Я же писал, что со второго раза обращении к программе после выдачи ошибки она работает... Вот что я еще интересного нашёл AutoCAD.Application.16.1 = AutoCAD 2005 AutoCAD.Application.16.2 = AutoCAD 2006 AutoCAD.Application.17 = AutoCAD 2007 AutoCAD.Application.17.1 = AutoCAD 2008 Тоесть Set acadApp = GetObject(, "AutoCAD.Application.16.2") и Set acadApp = CreateObject("AutoCAD.Application.16.2") Но у меня все равно ошибка, если только открыл файл и автокад не запущен ![]() В тулсах стоит Tools->Options->General в редакторе галочка на Break on Unhandled Errors |
|||
![]() |
|
||||
Вода - моя работа Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638
|
Всё что сделал:
1. Создал макрос 2. Заменил ‘ на ' ![]() 3. Поставил ' слева от указанных строчек 4. Подключил AutoCad 2008 Type Library и AutoCad Focus Control for VBA Type Library 5. Убрал Private 6. Назначил кнопке 7. Нажал кнопку
__________________
Нерешаемых проблем не бывает. |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Цитата:
Код:
старой версией из тех что загружены на твоей машине ~'J'~ |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
на злобу дня !! | zaza-noza | Разное | 63 | 22.05.2009 15:10 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
Юмор 2007 | Огурец | Разное | 1172 | 29.12.2007 11:16 |
ЮМОР 2006 =) | Perezz!! | Разное | 1122 | 04.01.2007 00:46 |