VBA在Excel中使用输出运行R脚本

时间:2018-03-24 11:28:58

标签: r excel vba excel-vba

我正在尝试在excel中使用R.I已经编写了一个在R studio中运行良好的R脚本 - 最终输出是一个excel文件。有人可以用VBA代码帮我吗?我尝试了多个来源,但没有取得任何成功(Link1),Link2Link3。这是一个非常简单的R代码,我想从VBA运行(我需要在excel表中输出或者作为一个新的excel文件 - 就像在R中一样)。

url<-("https://www.w3schools.com/xml/plant_catalog.xml")
data_df<- xmlToDataFrame(url)
library(xlsx)
write.xlsx(data_df,"P.xlsx")

1 个答案:

答案 0 :(得分:0)

是的,这听起来是正确的,当R Studio启动时,您可能需要根据所运行的Excel版本在32位和64位之间进行选择。

https://sites.google.com/site/rforfishandwildlifegrads/home/week_2/default32bit

现在,要从Excel运行R脚本,请执行以下操作。

Sub RunRscript1()
    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 to R executable:  C:\Users\rshuell001\Documents\R\R-3.2.5\bin\x64\R.exe
    ' path to R script:  C:\Users\rshuell001\Documents\R\Download.r
    ' see more setup details here
    ' http://shashiasrblog.blogspot.com/2013/10/vba-front-end-for-r.html
    path = "C:\Users\rshuell001\Documents\R\R-3.2.5\bin\x64\R.exe CMD BATCH --vanilla --slave C:\Users\rshuell001\Documents\R\Download.r"
    'path = """C:\Users\rshuell001\Documents\R\R-3.2.5\bin\i386"" C:\Users\rshuell001\Documents\R\Download.R"
    errorCode = shell.Run(path, style, waitTillComplete)
End Sub

这种情况对我来说很好。只需稍微修改它以满足您的特定需求。