Подтвердить что ты не робот

Запустите VBA script из R

Мне нужно управлять рабочим процессом с использованием R-скриптов и VBA-code. Я хотел бы запустить процесс в R (где большая часть моего кода) и время от времени вызывать VBA-code для конкретного вычисления.

Я бы подготовил входные данные для VBA в R, где-то записывал результаты (.csv, database), а затем использовал результаты в остальной части R- script.

Лучшим было бы, конечно, переместить весь код в R, но это пока невозможно. VBA-code довольно сложный. Перевод этого в R будет сложной долгосрочной задачей.

Есть ли возможность управлять в R таким потоком работы?

4b9b3361

Ответ 2

Здесь используется метод, который не требует оболочки VBscript. Вам нужно установить пакет RDCOMClient

library(RDCOMClient)

# Open a specific workbook in Excel:
xlApp <- COMCreate("Excel.Application")
xlWbk <- xlApp$Workbooks()$Open("C:\\Temp\\macro_template.xlsm")

# this line of code might be necessary if you want to see your spreadsheet:
xlApp[['Visible']] <- TRUE 

# Run the macro called "MyMacro":
xlApp$Run("MyMacro")

# Close the workbook and quit the app:
xlWbk$Close(FALSE)
xlApp$Quit()

# Release resources:
rm(xlWbk, xlApp)
gc()