0

今天,当我在使用 Rexcel 的地方启动 Excel 工作簿时,发生了一些事情(以前从未遇到过这个问题)。

在此处输入图像描述

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

另一个奇怪的事情是,在那之后 Rapply 等工作..但是当我关闭工作簿时我再次遇到错误。

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

编辑:感谢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")

昨天有效,请参阅使用 Rexcel 运行宏

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

最好的祝福

4

1 回答 1

0

是的。我自己也为此苦苦挣扎。您的计算很可能必须按特定顺序进行计算。通常,您的某些 ( RApply,REval等) 调用x <- 10会在 R 会话中创建一些数据 (例如 ),而以后的调用将期望这些数据存在:计算x^2

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

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

于 2014-03-28T11:00:31.233 回答