没有太多关于如何做到这一点的信息。我试着在网上研究了一个博客,并在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
但是,当我在Excel中运行宏时,它基本上什么也不做-只是在RStudio中打开脚本。我没有得到任何错误,但它没有给出任何输出-只是在Rstudio中打开R脚本。我做错了什么?
另外,如果我需要在Excel中使用R,这种方法是否有效,或者基本上我需要安装软件RExcel?
任何其他在Excel中使用R的链接/信息将不胜感激。Thanks:)
3条答案
按热度按时间pnwntuvh1#
它在RStudio中打开似乎很奇怪。我建议直接通过R.exe运行它。从你告诉我们的情况来看,PATH设置得很正确。因此,如果不需要输出,可以像这样调用R.exe:
如果你需要输出,那么你需要像这样创建一个WshShell对象:
这是运行R脚本的旧方法,但目前应该可以正常工作。您可能需要进一步检查R的安装,看看是否存在其他问题。
5rgfhyps2#
我和你有同样的问题,但“R CMD BATCH”解决方案不适合我。这就是我的工作。
首先,我测试了是否可以通过命令行运行R脚本来排除任何问题。
打开命令提示符,并尝试在“>”符号后键入“path Rscript.exe”“您要运行的R脚本的路径”。在我的例子中,我键入“C:\Program Files\R\R-3.6.0\bin\Rscript.exe”“C:\Users\phung\Documents\Angela\DB_Import\TransformData.R”,然后按回车键运行代码。例如,请参见下面的图像。您需要导航到C程序文件>R>版本>bin以找到Rscript.exe(可能是计算机上的不同路径)。
一旦我得到了这个工作,我使用了Ibo提供的代码:Running R scripts from VBA
我很小心地在VBA中使用双引号,因为我的文件夹名称中有一个空格。
xjreopfe3#
前面的答案是正确的,但原因如下。用于WScript.shell的路径是执行的路径。这类似于在文件资源管理器中双击文件。
操作系统看到路径中的文件扩展名(.R)并说“我知道该怎么做!.R的默认应用程序是RStudio。所以它打开RStudio和指定的文件。