Сообщество программистов Autodesk в СНГ
ADN Club => VBA => Тема начата: Vitus66 от 20-12-2020, 16:54:53
-
Добрый день!
В AutoCAD есть команда "НАЙТИ", с помощью которой можно выполнить замену текста по всему чертежу.
Я хочу с помощью VBA из Excel послать команду "НАЙТИ" с параметрами и выполнить функцию "Заменить все".
В справке есть пример:
ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr
делаю по подобию:
ThisDrawing.SendCommand "НАЙТИ" & vbCr & "ВЗЛЕТ" & vbCr & "РАДУГА" & vbCr
команда "НАЙТИ" запускается, но параметры не передаются.
Как можно это сделать?
-
Добрый день!
В AutoCAD есть команда "НАЙТИ", с помощью которой можно выполнить замену текста по всему чертежу.
Я хочу с помощью VBA из Excel послать команду "НАЙТИ" с параметрами и выполнить функцию "Заменить все".
В справке есть пример:
ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr
делаю по подобию:
ThisDrawing.SendCommand "НАЙТИ" & vbCr & "ВЗЛЕТ" & vbCr & "РАДУГА" & vbCr
команда "НАЙТИ" запускается, но параметры не передаются.
Как можно это сделать?
Команд с параметрами не бывает. Некоторе команды запрашивают дополнительные настройки в командной строке и тогда можно послать их через SendCommand. Команде НАЙТИ (_FIND) так передать настройки нельзя - только через диалоговое окно.
-
Спасибо за ответ.
Хочу на VBA реализовать автоматическую замену текстов в чертеже AutoCAD. (аналог команды "НАЙТИ")
В файле Excel я создал таблицу пар замен: в первом столбце - что найти, во втором столбце - на что заменить.
Предполагаю в цикле выбирать пару и выполнять автозамену.
Может подскажите идею, как реализовать автозамену текстов.
-
Можно ли через VBA имитировать работу с диалоговым окном?
-
Можно ли через VBA имитировать работу с диалоговым окном?
Теоретически можно, но чрезвычайно сложно. В особенности из другого процесса. Я бы не стал с этим заморачиваться. Вместо этого просто напиши программу замены текстов.
-
А как замену выполнять в таблицах?
Неужели перебирать все ячейки?
Или есть что порациональнее?
-
Неужели перебирать все ячейки?
Именно.
-
Этот велосипед уже изобретен, может работать в том числе по всем чертежам в папке и подпапках
http://www.lee-mac.com/bfind.html
-
А как замену выполнять в таблицах?
Неужели перебирать все ячейки?
Или есть что порациональнее?
В экселе есть понятие "умные таблицы", там есть команда Find... Она работает быстрее чем перебор ячеек в цикле