我正在处理一个三部分的问题。我的Excel工作簿中有一个按钮,在更改输入后会被按下,然后附加到该宏的宏会在清除表之前运行R脚本,该脚本将获取输入并过滤/清理数据并将其吐出到新的xlsx中文件。然后,R脚本在同一工作簿中触发另一个宏,以打开xlsx文件并将数据插入表中并执行其他一些操作。
在分解工作之前,我有一个宏触发R脚本并等待10分钟以使其运行,然后继续。问题是,根据数据大小,rscript有时需要2分钟(或更少),有时甚至需要10分钟。这样做很好,但是在将宏拆分为2(最后一部分由R脚本触发)之后,第二个宏没有运行。我无法判断R脚本本身是否运行,是否在以前运行,何时运行过,但是现在已经拆分了,所以没有。
Dim length As Double
Dim rptday As String
Dim l As Integer
Dim k As Integer
'some code
ThisWorkbook.Save
Dim rCommand As String
rCommand = """C:\Program Files\R\R-3.5.3\bin\RScript.exe"" --verbose ""U:\Reporting\Mix of Business Report\Farm Data Cleaning Code.R"" && pause"
'Timer Set to run full Model.R script
Application.Wait Now + TimeValue("00:05:00")
'Runs R Script and arguments into process
shell rCommand, vbNormalFocus
'Timer Set to run full Model.R Script
Application.Wait Now + TimeValue("00:05:00")
'THIS IS WHERE I HAVE IT SPLIT INTO 2 MACROS, WITH WAIT TIME BEING 1 MINUTE EACH
'other coder
ActiveWorkbook.RefreshAll
Application.Calculate
ThisWorkbook.Save
'HERE IS THE R CODE THAT TRIGGERS THE SECOND MACRO CALLED RunAfterR
library(RDCOMClient)
xlApp <- COMCreate("Excel.Application")
xlApp$Run("RunAfterR")
End Sub
没有错误消息,也没有在表中插入任何数据(这意味着RunAfterR不会被触发。但是,当我直接在R Studio中获取R脚本时,RunAfterR宏IS就会运行。