2011-03-04 44 views
2

我试图写一个R-Excel vba插件,并且在使用GetArrayToVBA时遇到了麻烦。R-Excel VBA:如何提取由GetArrayToVBA返回的值?

实施例:

RInterface.StartRServer 
RInterface.RRun "mytst<-4" 
Dim tstVar As Variant, tst As Double 
tstVar = RInterface.GetArrayToVBA("mytst") 
tst = CDbl(testVar) 
MsgBox "count = " & CStr(tst) 
RInterface.StopRServer 

在消息框结果表示count = 0。我期待count = 4

回答

2

这是一个VBA问题。您不能使用CDbl()将1x1数组转换为double,以获取该数组中的值。您必须从数组中为其提供索引(0,0)。以下作品:

RInterface.StartRServer 
RInterface.RRun "mytst<-as.matrix(4)" 
Dim tstVar As Variant, tst As Double 
tstVar = RInterface.GetArrayToVBA("mytst") 
tst = CDbl(tstVar(0, 0)) 
MsgBox "count = " & CStr(tst) 
RInterface.StopRServer 
+0

现在它的作品非常漂亮。 – Steve 2011-03-04 22:58:53