-1

I was looking for the same answer where I need to call data from a RTD server

Sub Test() 
    Range("d1") = RTD("tickerplantrtdserver", , 4#2#1#6768#FUTSTK#N1#0#XX#Bid)
End Sub

When I extract data from Excel

RTD("tickerplantrtdserver", , 4#2#1#6768#FUTSTK#N1#0#XX#Bid)

it works fine and gives a number.

pnuts
  • 58,317
  • 11
  • 87
  • 139

2 Answers2

1

Try this:

Range("d1") = [RTD("tickerplantrtdserver", , 4#2#1#6768#FUTSTK#N1#0#XX#Bid)]

[] brackets are shortcut for Evaluate Function.
So it can be written like this as well:

Range("d1") = Evaluate("RTD(""tickerplantrtdserver"", , 4#2#1#6768#FUTSTK#N1#0#XX#Bid)")

Take note of the double quotes in the ""tickerplantrtdserver"" part.
I have not tried this yet and have no way of testing but Evaluate works on formulas, so I am just assuming it will work the same with RTD.

L42
  • 19,427
  • 11
  • 44
  • 68
0

RTD is designed to return data continuously, but for the current value, try this:

Dim xlApp As New Excel.Application
Sub test()
   Range("D1") = xlApp.WorksheetFunction.RTD("tickerplantrtdserver", Null, "4#2#1#6768#FUTSTK#N1#0#XX#Bid")
End Sub

xlApp is slow, so you want to initialize once only

If you get a bad value, the server may not have a value yet, so try again a few seconds later

NB: Windows Excel only (RTD not supported on MAC)

Marc
  • 442
  • 7
  • 15