启动Excel时Rexcel出错

时间:2014-03-28 10:38:04

标签: r excel-vba rexcel vba excel

当我启动使用Rexcel的Excel工作簿时,今天发生了一些事情(之前从未遇到此问题)。

enter image description here

然后还有一些错误......一切都运转正常..有没有人知道问题可能是什么?

另一个奇怪的事情是,之后Rapply等工作..但是当我关闭工作簿时我又出错了。

因此,当我在Excel中使用Rexcel meny startR时出现问题。

编辑: 感谢flodel的回答。但是现在不能运行Sub或者?

    Sub create_efficient_frontier()

 RInterface.StartRServer

 Sheets("Analys").Range("A52:K82").ClearContents

 RInterface.PutDataframe "datat", Range("ChosenData!X181:AD352")
 RInterface.PutArray "startdate", Range("Analys!K2")
 RInterface.PutArray "enddate", Range("Analys!K3")

RInterface.RunRFile "C:/Users/Documents/EffFront.R"

RInterface.GetDataframe "hmz$pweight", Range("Analys!A51:E76")

End Sub

我遇到运行时错误13(“不兼容的类型”) RInterface.GetDataframe "hmz$pweight", Range("Analys!A51:E76")

昨天有效,见Run macro with Rexcel

Solution: Ctrl+Alt+Shift+F9 seems to work:)

最好的问候

1 个答案:

答案 0 :(得分:0)

是。我自己也在努力解决这个问题。很可能您的计算必须按特定顺序计算。通常,您的一些(RApplyREval等)调用会在R会话中创建一些数据(例如x <- 10),之后调用将期望数据存在:compute {{ 1}}。

从头开始构建spreadhseet时,一切正常。问题在于,当您保存并重新打开它时,Excel不知道它需要以何种顺序计算您的单元格:它通过以稍微随机的顺序触发单元格计算来计算其依赖关系树。那么,应该计算x^2的单元格可能会在R环境中创建x^2的单元格之前运行,从而触发错误。

这很烦人,但正如您所注意到的,在Excel能够构建其依赖关系树之后,错误最终会消失。如果您绝对需要找到该问题的解决方案,则必须使用VBA代码来帮助Excel以非常特定的顺序构建其依赖关系树。