由VBA宏触发的R脚本不会运行其他宏

时间:2019-10-08 15:59:35

标签: r vba

我正在处理一个三部分的问题。我的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就会运行。

0 个答案:

没有答案