汤森路透Eikon使用:
我需要从路透社获取有关现货价格的数据。这可以通过路透社公式轻松完成。但是,我需要在VBA脚本中使用此数据。部分VBA脚本插入公式,然后路透社检索数据,但这可能需要一段时间(10-20秒)。
如果路透社检索到数据,我如何让VBA脚本暂停? (在前10秒钟,路透社数据的单元格显示:'检索....'
Range("B2").value = Application.Evaluate("RtGet(" & IDN & "," & RWAL & "," & MIDPRICE & "," & TYPENUM & ")")
此代码现用于插入公式,其中RWAL是汇率标识符(例如EUR =)
答案 0 :(得分:1)
我们需要使用application.run在代码中使用RtGet函数作为其真正的工作表函数。因为它是一个工作表函数,所以在代码运行时不会检索数据。
为了解决这个问题,我们使用Application.RTD.RefreshData从RTD服务器中提取数据
Function getField(ric As String, field As String) As String
Data = Application.Run("RtGet", "IDN", ric, field)
Do While VBA.Left(CStr(Data), 3) = "Ret" 'ie loop while it is retrieving data
Application.RTD.RefreshData
DoEvents
Data = Application.Run("RtGet", "IDN", ric, field)
Debug.Print Data
Loop
getField = Data
End Function
Public Sub testGetField()
Dim test
test = getField("EUR=", "BID")
End Sub