汤森路透Eikon:
我需要从路透社获得外汇现货价格的数据。用路透社的公式很容易做到这一点。但是,我需要在VBA脚本中使用这些数据。VBA脚本的一部分插入公式,然后路透社检索数据,但这可能需要一段时间(10-20秒)。
如何使VBA脚本暂停,直到路透社检索到数据?(在前10秒内,路透社的数据显示:“检索.”
Range("B2").value = Application.Evaluate("RtGet(" & IDN & "," & RWAL & "," & MIDPRICE & "," & TYPENUM & ")")此代码现在用于插入公式,其中RWAL是汇率标识符(如EUR=)。
发布于 2014-05-14 10:04:10
我们需要使用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 Subhttps://stackoverflow.com/questions/23362256
复制相似问题