2011-03-04 47 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