假设我在Excel中有VBA宏进行一些计算。我想在R中进行此计算的一部分,但是在程序模式下。比如,在某些时刻,Excel宏有一个向量,它需要通过R中的平均函数找到它的平均值。如何从VBA调用R,将向量传送到R,在R中启动计算并在VBA中返回结果?感谢。
答案 0 :(得分:4)
有一个插件RExcel,但我发现使用它非常可怕(你有点必须付钱)。
执行互动的最简单,最通用但最常用的方式如下:
1)将csv中的数组/矩阵/向量保存在文件夹
中2)将您的R代码写入读取csv的文件中并将结果写入csv
3)使用VBA Shell函数(Rscript scriptName.R)从VBA调用R脚本
4)将结果导回excel / VBA。
此方法的优点是您可以将计算逻辑与VBA中的格式分开。
您也可以使用R中的-e选项直接在VBA中调用R代码,但这是强烈未经修改的。
希望它有所帮助!
BTW:它适用于所有其他程序(Python / LaTeX / Matlab)。