У меня есть кусок кода R в моем блестящем приложении, которое в основном запускает скрипт, который запускает макрос в Excel:Блестящей приложение не работает на Shinyapps.io
path_to_vbs_file = "www/Macro_Trigger.vbs"
shell(shQuote(normalizePath(path_to_vbs_file)), "cscript", flag = "//nologo")
Код .vbs является:
Option Explicit
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBook
Dim fso
Dim curDir
Set xlApp = CreateObject("Excel.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
curDir = fso.GetParentFolderName(wscript.ScriptFullName)
Set xlBook = xlApp.Workbooks.Open(curDir & "\KPI_Report.xlsm", 0, False)
xlApp.Application.Visible = False
xlApp.DisplayAlerts = False
xlApp.Run "ConvertTextToNumber"
xlApp.ActiveWorkbook.SaveAs curDir & "\KPI_Report.xlsm"
xlApp.ActiveWorkbook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
Код прекрасно работает в локальной операционной системе Windows, но сбой на сервере shinyapps.io. Я попытался с помощью системной команды вместо оболочки:
path_to_vbs_file = "www/Macro_Trigger.vbs"
system(shQuote(normalizePath(path_to_vbs_file)), intern = FALSE)
Но это не помогает :(
Я подозреваю, что код vbs не будет запущен на shinyapps.io, поскольку сервер запускает операционную систему Linux. –
Спасибо за ответ. Есть ли альтернативный способ, которым я могу достичь моя цель? –
Я думаю, вам нужно использовать 'RExcel' или что-то подобное для реализации кодовых функций VBS в R. –