在路透社检索数据后继续

时间:2014-04-29 10:37:38

标签: excel vba excel-vba reuters

汤森路透Eikon使用:

我需要从路透社获取有关现货价格的数据。这可以通过路透社公式轻松完成。但是,我需要在VBA脚本中使用此数据。部分VBA脚本插入公式,然后路透社检索数据,但这可能需要一段时间(10-20秒)。

如果路透社检索到数据,我如何让VBA脚本暂停? (在前10秒钟,路透社数据的单元格显示:'检索....'

Range("B2").value = Application.Evaluate("RtGet(" & IDN & "," & RWAL & "," & MIDPRICE & "," & TYPENUM & ")")

此代码现用于插入公式,其中RWAL是汇率标识符(例如EUR =)

1 个答案:

答案 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