| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Autocad 2016 как заполнить подшивку данными из Excel?

VBA Autocad 2016 как заполнить подшивку данными из Excel?

Ответ
Поиск в этой теме
Непрочитано 20.11.2016, 22:15
VBA Autocad 2016 как заполнить подшивку данными из Excel?
KomProekt
 
Регистрация: 12.08.2016
Сообщений: 59

Здравствуйте!

Есть задача: из таблицы Excel нужно взять данные и внести их в подшивку Акадовскую (желательно создать новую подшивку с заданными свойствами, заполненными из Excel). Какими методами это можно сделать? Или удобней использовать не VBA, а что то другое для этой задачи (например .Net) ?

Спасибо!
Просмотров: 15065
 
Непрочитано 28.11.2016, 01:10
#41
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Посмотрел на скриншот чуть внимательнее:
1. Кто вас учил определение переменной в комментариях размещать?
2. Смотрим в окно локальных переменных: oSheetSetMgr - тип Variant/Неподдерживаемый тип объекта. Почему так произошло - догадываетесь?
3. Включите, наконец, контроль объявления переменных в коде.
Сергей812 вне форума  
 
Автор темы   Непрочитано 28.11.2016, 22:06
#42
KomProekt


 
Регистрация: 12.08.2016
Сообщений: 59


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
3. Включите, наконец, контроль объявления переменных в коде.
вернул в код.

Стало лучше, ошибка не вылетает, но ничего не происходит и подшивка по прежнему не открывается(
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный2.jpg
Просмотров: 58
Размер:	44.0 Кб
ID:	179909  
KomProekt вне форума  
 
Непрочитано 28.11.2016, 22:09
#43
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


утром этот код тестил - всё работало
trir вне форума  
 
Непрочитано 28.11.2016, 22:37
#44
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


И такой же код в спецификации работы с подшивкой от аутодеска. А что подразумеваете под открытием подшивки?
Сергей812 вне форума  
 
Автор темы   Непрочитано 28.11.2016, 23:11
#45
KomProekt


 
Регистрация: 12.08.2016
Сообщений: 59


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А что подразумеваете под открытием подшивки?
Отображение в диспетчере подшивок. А как иначе?
KomProekt вне форума  
 
Непрочитано 28.11.2016, 23:24
#46
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


ну, наверно, для начала убедиться - что в переменной oSheetDb была получена ссылка на объект БД подшивки. Менеджер подшивок вообще может быть скрыт в акаде - и все, приехали?
Сергей812 вне форума  
 
Автор темы   Непрочитано 28.11.2016, 23:34
#47
KomProekt


 
Регистрация: 12.08.2016
Сообщений: 59


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Менеджер подшивок вообще может быть скрыт
менеджер открыт. Прикладываю скрин. Видно, что ссылка не получена.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный2.jpg
Просмотров: 44
Размер:	61.8 Кб
ID:	179912  
KomProekt вне форума  
 
Непрочитано 29.11.2016, 00:00
#48
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


ссылка на менеджер подшивок получена, иначе при попытке обратиться к методу менеджера OpenDatabase сразу получили бы ошибку. А у вас на скриншоте и менеджер подшивок не определен.
Сергей812 вне форума  
 
Непрочитано 29.11.2016, 04:44
#49
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Отображение в диспетчере подшивок. А как иначе?
facepalm, абсолютно нет

Цитата:
А у вас на скриншоте и менеджер подшивок не определен.
нет, определён, просто в библиотеке всё так реализовано - что в инспекторе нифига не видно
но можно использовать методы, например:
Цитата:
MsgBox oSheetDb.GetFileName()

Последний раз редактировалось trir, 29.11.2016 в 09:34.
trir вне форума  
 
Непрочитано 29.11.2016, 10:55
#50
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от trir Посмотреть сообщение
просто в библиотеке всё так реализовано - что в инспекторе нифига не видно
печально, что в новой 7-ой версии VBA остались прежние глюки. Выкинули бы поддержку VBA напрочь, расширив функционал того же лиспа. ТС можно посоветовать перейти на Interrop под VB.NET - синтаксис VBA, возможности языка NET, возможность переписывания программы блоками кода под NET API по мере освоения.
Сергей812 вне форума  
 
Непрочитано 29.11.2016, 11:01
#51
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


на VB.NET та же картина, это особенность данной библиотеки - AcSmComponents20.tlb
trir вне форума  
 
Непрочитано 29.11.2016, 14:26
#52
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


я в целом - там хоть защитная обертка в Interrop есть, тогда как в чистом NET API при определенной "удаче" можно вообще сам акад уронить, как два пальца. С текущей задачей все понятно - как ТС не открывал ссылки пункта 2 со спецификацией работы с подшивкой (хотя позже kp+ напомнил про нее), так, похоже и не собирается. Хотя чего бояться экспериментировать в программировании - главное, резервные копии файлов делать и сохранять код перед запуском.
Сергей812 вне форума  
 
Автор темы   Непрочитано 01.12.2016, 22:25
#53
KomProekt


 
Регистрация: 12.08.2016
Сообщений: 59


Цитата:
Сообщение от trir Посмотреть сообщение
нет, определён, просто в библиотеке всё так реализовано - что в инспекторе нифига не видно
Правильно я понял, что по сути подшивка открыта, но не отображается в диспетчере подшивок??

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как ТС не открывал ссылки пункта 2 со спецификацией работы с подшивкой (хотя позже kp+ напомнил про нее), так, похоже и не собирается
Открывал, как же не открывал. Взял от туда файл с основами, от туда и начал. Сразу наткнулся на проблему, которую тут и обсуждаем. Самое простое: просто открыть существующую подшивку. И она вроде как открылась, но в диспетчере ее нет. Нах...на зачем она тогда открылась, если ее не видно и соответственно ничего в ней не поменять вручную!?!
KomProekt вне форума  
 
Непрочитано 01.12.2016, 22:40
#54
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


а зачем менять вручную? Влезли программно в БД подшивки, поменяли что надо и сохранили. Это не эмуляция ввода в комстроку, как в том же лиспе делается в ряде задач. Почитайте спецификацию, там есть как раз и создание новой подшивки.

----- добавлено через ~12 мин. -----
Да и не все так просто )
Сергей812 вне форума  
 
Автор темы   Непрочитано 02.12.2016, 00:00
#55
KomProekt


 
Регистрация: 12.08.2016
Сообщений: 59


Ну хорошо, если подшивка открыта, то почему поля в файле не обновляются при регенерации (если открывать подшивку вручную , то при регенерации поля обновляются) ?
KomProekt вне форума  
 
Непрочитано 02.12.2016, 00:14
#56
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Метод UpdateInMemoryDwgHints .
Сергей812 вне форума  
 
Непрочитано 02.12.2016, 07:14
#57
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Правильно я понял, что по сути подшивка открыта, но не отображается в диспетчере подшивок??
да
trir вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Autocad 2016 как заполнить подшивку данными из Excel?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связка AutoCAD с Excel через командную строку. raffnec AutoCAD 9 19.09.2016 10:54
Заполнение размеров в Autocad из Excel zenija2007 AutoCAD 9 18.09.2015 12:53
Как добавить префикс к однострочному тексту в AutoCAD 2016 andrey_artphoto AutoCAD 5 27.05.2015 17:11
Привязка таблицы Excel к чертежу AutoCad Teo-one Программирование 5 22.03.2014 00:11
Таблица из Excel в AutoCAD Elbrus AutoCAD 56 11.06.2012 11:41