Запуск Excel с использованием VBA из другой программы - PullRequest
0 голосов
/ 08 ноября 2019

Я использую vba в программе CAD для экспорта данных, сортировки данных и добавления данных. Следующий макрос - именно то, что я хочу сделать в Excel. Однако я считаю, что я ограничен тем, чтобы программа CAD говорила Excel, что делать через VBA. Этот макрос копирует формулу и вставляет ее во все заполненные ячейки в столбце.

КОД МАКРОСА:

Range("B1").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste

iLogic Версия кода:

oBook.WorkSheets(1).Name = "Order List"
oBook.WorkSheets(2).Name = "Cut List"
wSheet1 = oBook.WorkSheets("Order List")
wSheet2 = oBook.WorkSheets("Cut List")

wSheet2.Activate
wSheet2.Range("B1").Select
wSheet2.Selection.Copy
wSheet2.Range(Selection, Selection.End(xlDown)).Select
wSheet2.Selection.Paste

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

Ответы [ 2 ]

0 голосов
/ 09 ноября 2019

Хорошо. У меня был какой-то код, который я скопировал с форума, но не понимал, что происходит. Я полагаю, что это то, что вы имеете в виду под «приложением»?

wSheet2.Columns("G:G").select()
oExcelApp.Selection.cut()
wSheet2.Columns("B:B").Select()
oExcelApp.Selection.Insert(Microsoft.Office.Interop.Excel.XlDirection.xlToRight)

Хотя я не понимаю, что означает «(Microsoft.Office.Interop.Excel.XlDirection.xlToRight)». Я понимаю часть о направлении и о том, куда он вставляет, а не о том, что перед ним.

0 голосов
/ 08 ноября 2019

Я согласен с @DisGruntledDraftsman по поводу того, что вы не используете Select и Activate. Однако, если вы просто пытаетесь получить какой-то рабочий код, который выполняет работу, можно сделать несколько простых настроек. Конечно, это не идеально, но это должно работать.

row_Count = wSheet2.Range("B1048576").End(xlUp).Row
wSheet2.Activate
wSheet2.Range("B1").Select
Selection.AutoFill Destination:=wSheet2.Range("B1:B" & row_Count), Type:=xlFillDefault
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...