2012-08-03 97 views
0

我有一个RTD服务器,用于向Excel发送数据和从Excel发送数据。我试图通过在Excel的VBA模块中构建一些简单的函数来让用户更容易地获取数据,以便在不知道整个后端的情况下获取数据。Excel中的模块函数返回#VALUE

Function parseData(ByVal arrayData As String) As Variant 
    parseData = Evaluate(arrayData) 
End Function 

Function getQuote(ByVal ticker As String) As String 
    getQuote = parseData(Application.RTD("rTech.Quotes", , ticker)) 
End Function 

Function getBidSize(ByVal ticker As String) As String 
    getBidSize = Application.RTD("rTech.Quotes", , ticker, "bidsize") 
End Function 

Function getBidPrice(ByVal ticker As String) As String 
    getBidPrice = Application.RTD("rTech.Quotes", , ticker, "bidprice") 
End Function 

Function getAskSize(ByVal ticker As String) As String 
    getAskSize = Application.RTD("rTech.Quotes", , ticker, "asksize") 
End Function 

Function getAskPrice(ByVal ticker As String) As String 
    getAskPrice = Application.RTD("rTech.Quotes", , ticker, "askprice") 
End Function 

Function getLast(ByVal ticker As String) As String 
    getLast = Application.RTD("rTech.Quotes", , ticker, "last") 
End Function 

也就是说它基本上,虽然我总是做

= getBidSize( “XXXX”)叫他们

返回#VALUE的每次尝试;我猜它是在Application.RTD部分崩溃,但我不是100%肯定的,因为使用调试时,它只是“停止”,当我跨过RTD调用。

回答

0

这是造成问题的主要原因不是由于任何事情,而是因为RTD函数想要一个空白的第二个参数而不仅仅是忽略它,不像你会这样做,如果你在功能栏Excel中。

因此,职能应该是这样的:

getLast = Application.RTD("rTech.Quotes", "", ticker, "last")