【问题标题】:Run R function in VBA macro在 VBA 宏中运行 R 函数
【发布时间】:2016-10-31 20:08:35
【问题描述】:

我正在尝试从 excel VBA 宏运行 R 代码。

R 函数使用两个输入:DataFilter(Input1,Input2) 该函数进行一些过滤,然后在文件夹中保存一个新的 excel 文件 N:\数据文件夹

您能否帮助创建一个 VBA 宏,该宏使用两个新的文本输入(假设电子表格中 sheet1 中的单元格 A1 和 B1)运行 DataFilter 函数。 从那里我将能够在 vba 宏中打开 excel 文件。

谢谢!

【问题讨论】:

  • Ciao!欢迎来到 SO。首先你应该阅读here关于如何提出一个好问题;一个好的问题更有可能得到解决,你得到帮助。另一方面,阅读this 也是一件好事。它解释了如何在 R 中创建可重现的示例。通过提供一段数据、所需的输出和您已经尝试过的事情来帮助用户帮助您。

标签: r vba rexcel


【解决方案1】:

您可以通过创建 Windows Shell 对象并将执行 R 脚本的字符串传递给它来在 VBA 中运行 R 脚本

Sub RunRscript()
'runs an external R code through Shell
'The location of the RScript is 'C:\R_code'
'The script name is 'hello.R'

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\hello.R"
errorCode = shell.Run(path, style, waitTillComplete)
End Sub

(source)

您可以将单元格值作为命令行参数传递给 R 脚本。请参阅?commandArgs 了解更多信息。

【讨论】:

  • 嗨@yeedle,我尝试运行将 C:\R_code\hello.R 替换为 H:\apps\xp\Desktop\hello.R 的代码,其中保存了我的测试函数,但我得到了以下错误:对象“IWshShell3”的方法“运行”失败。看起来这是运行 R 的问题,知道吗?
  • “R.exe”和“RScript.exe”的路径需要在您的系统 PATH 变量中。是吗?
【解决方案2】:

我不确定这是一个直接的答案。您可能想看看它是如何使用 Bert 工具包完成的。这似乎有助于将 R 和 Excel 相互集成。

https://bert-toolkit.com/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多