我有一台RTD服务器用于向Excel发送数据和从Excel发送数据。我试图通过在Excel的VBA中的模块中构建一些简单的函数来使用户更容易,以允许他们在不知道整个后端的情况下获取数据。
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%肯定,因为当我使用Debug时它只是“停止”当我跨过RTD呼叫时。
答案 0 :(得分:0)
导致问题的主要原因不是由于RTD功能需要一个空白的第二个参数而不是省略它的事实,不像你在Excel中的功能栏中这样做
所以,函数应该是这样的:
getLast = Application.RTD("rTech.Quotes", "", ticker, "last")