【问题标题】:Running R script using VBA使用 VBA 运行 R 脚本
【发布时间】:2021-09-07 17:45:24
【问题描述】:

我正在尝试在 Excel 上创建一个运行我创建的 R 脚本的按钮。这是我试过的 VBA 代码:

Sub RunRscript()

Dim shell As Object
Set shell = VBA.CreateObject("WScript.Shell")
Dim waitTillComplete As Boolean: waitTillComplete = True
Dim style As Integer: style = 1
Dim errorCode As Integer
Dim path As String
path = "RScript C:\R_code\Forecast.R"
errorCode = shell.Run(path, style, waitTillComplete)
End Sub

但这也会返回错误 -> 运行时错误 '-2147024894 (80070002) 自动化错误。

非常感谢任何帮助!

【问题讨论】:

  • 好像你的 R 代码有问题,然后可能先解决这个问题?
  • 好吧,我可以在 Rstudio 上运行 Rcode 错误费用。
  • 使用您要运行的可执行文件的完全限定路径。您当前的代码取决于 PATH 变量和查找。
  • 您的 R 脚本从哪里读取其输入?
  • @HackSlash 您能否详细说明什么是完全限定路径?或者也许告诉我在哪里可以找到有关它的更多信息?谢谢!

标签: r excel vba


【解决方案1】:

答案是使用完全限定路径指向要在 shell 中运行的可执行文件。您不能依赖 PATH 变量查找。这样更安全。

Sub RunRscript()

    Dim waitTillComplete As Boolean: waitTillComplete = True
    Dim style As Integer: style = 1
    Dim errorCode As Integer
    Dim path As String
    path = """C:\Program Files\R\R-4.1.1\bin\Rscript.exe"" C:\R_code\Forecast.R""

    With CreateObject("WScript.Shell")
        errorCode = .Run(path, style, waitTillComplete)
    End With
End Sub

注意:如果您需要在 PATH 变量中快速找到可执行文件的位置,您可以从 cmd.exe 运行 where RScript,它会告诉您完全限定的路径。

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多