Выгрузка содержимого таблицы nanoCAD в Excel

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

подскажите пожалуйста как с помощью vba-excel выгрузить выбранную таблицу-NanoCAD на чертеже в новый лист Excel?

Заранее спасибо!

Начало кода:

?как вставить скопированную таблицу

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

подскажите пожалуйста как с помощью vba-excel выгрузить выбранную таблицу-NanoCAD на чертеже в новый лист Excel?

Заранее спасибо!

Начало кода:

?как вставить скопированную таблицу

Тут посмотрите.

экспорт всех таблиц в одну книгу Exel или один .csv файл - Клуб разработчиков - Клуб разработчиков nanoCAD

https://forum.nanocad.ru/discussion/1007/vygruzka-soderzhimogo-tablicy-nanocad-v-excel

Тут посмотрите.

экспорт всех таблиц в одну книгу Exel или один .csv файл - Клуб разработчиков - Клуб разработчиков nanoCAD

У меня нет доступа к этому клубу

https://forum.nanocad.ru/discussion/comment/4133#Comment_4133

У меня нет доступа к этому клубу

Как так? Регистрируйтесь :slight_smile:

https://forum.nanocad.ru/discussion/comment/4135#Comment_4135

Как так? Регистрируйтесь :slight_smile:

При регистрации длинный договор заполняется. Пока с этим думаю

Фрагмент кода ниже позволяет выгрузить из ячеек таблицы-NanoCAD в Excel содержимое, включая формулы.

Dim acadTable As Object
Dim sText As String

With acadTable.Cell(i + 1, j + 1)
sText = .Text
End With

With wsActiveSheet.Cells(i + lStartSelRow - lStartAcadRow, j + lStartSelCol - lStartAcadCol)
If Len(sText) > 0 Then
.FormulaLocal = sText
End If
End With

Подскажите пожалуйста как изменить код, чтобы выгружались значения формул?

Фрагмент кода ниже позволяет выгрузить из ячеек таблицы-NanoCAD в Excel содержимое, включая формулы.

Dim acadTable As Object
Dim sText As String

With acadTable.Cell(i + 1, j + 1)
sText = .Text
End With

With wsActiveSheet.Cells(i + lStartSelRow - lStartAcadRow, j + lStartSelCol - lStartAcadCol)
If Len(sText) > 0 Then
.FormulaLocal = sText
End If
End With

Подскажите пожалуйста как изменить код, чтобы выгружались значения формул?

image.png

посмотри в отладчике значения в Locals

В Excel выводится хоть какой-то результат только при “sText = .Text”.
Может до переноса таблицы ее значения формул можно преобразовать в текст (*возможно средствами NanoCAD)?

В Excel выводится хоть какой-то результат только при “sText = .Text”.
Может до переноса таблицы ее значения формул можно преобразовать в текст (*возможно средствами NanoCAD)?

ты получаешь value ячейки, а ячейка на самом деле не текст а объект с дофига свойств и то что ты получаешь одно из свойств не нужное тебе

**Dim cel As SymTableCell **

image.png

получим объект

Set cel = acadTable.Cell(1, 3)

и его значение.. text это будет формула

txt = cel.DisplayText

то что отображается в ячейке

так надо

так надо

Спасибо, получилось!

1 лайк

Добрый день.

В июне 2025 г. вы поднимали тему “Выгрузка содержимого таблицы нанокад в эксель”. Вроде у вас получилось сделать через инструменты экселя.

Я полнейший “чайник” в этих делах, поэтому есть несколько вопросов:

этот коды вы создавали для листа или это новый модуль?

как оно работает, просто запускается из экселя при открытом нужном файле нанокада?

Как новый модуль.
да, в excel жму кнопку, в nanoCAD в текущем чертеже выбираю таблицу-NanoCAD, значения ее ячеек загружаются на Лист Excel (или во всех открытых чертежах все таблицы сразу)

2 лайка

Не работает.

Выдаёт ошибку “Invalid outside procedure”.

Если сделать внутри Sub-End Sub, то ошибка “Run-time error 91”.

И ещё вопрос: в Tools - References какие ссылки надо добавить, чтобы заработало?

Без библиотек - позднее связывание

1 лайк

Тут написано - фрагмент кода.

Может, надо ещё что-то добавить, чтобы корректно работало?

Хочу у Вас попросить полный текст того, что надо вставить в модуль.

Подскажите, пожалуйста, где можно взять документацию на ncauto.dll?

В клубе разработчиков