Как вызвать функцию Bloomberg в VBA

Я пытаюсь написать код VBA так, чтобы каждый раз, когда я набираю число, оно становилось биржевым тикером после добавления "HK Equity" кодом VBA. Затем электронная таблица может вернуть свой RSI, используя функцию Bloomberg BTP. Например, когда я набираю "1" в ячейке, электронная таблица возвращает RSI акции "1 HK Equity", используя функцию Bloomberg =BTP($D3,E$2,"RSI","TAPeriod=14","DSClose=LAST_PRICE","Пер = д").

Вот мой код:

Sub RSI()
Dim num As Integer
num = Sheets("sheet2").Cells(3, 2).Value

Dim numString As String
numString = CStr(num)

Dim ticker As String
ticker = numString + "HK Equity"

Dim rsiString As String
rsiString = Sheets("sheet2").Cells(4, 2).Value

Sheets("sheet2").Cells(5, 2).Value = "=BTP(" & ticker & "," & rsiString & "," & "RSI" & ", "    & "TAPeriod=14" & "," & "DSClose=LAST_PRICE" & "," & "Per=d" & ")"

End Sub

Когда я запускаю код, он говорит "Ошибка времени выполнения" 1004 ": ошибка приложения или объекта. И отладчик говорит, что последняя команда имеет проблему (т.е. Sheets("sheet2"). Ячейки (5, 2).Value = "=BTP....) Что не так с этой командой? THX!!

1 ответ

Решение

Можете ли вы проверить вывод BTP формула?

' =BTP(1 HK Equity,rsi string,RSI, TAPeriod=14,DSClose=LAST_PRICE,Per=d)
Sheets("sheet2").Cells(5, 2).Value = "=BTP(" & ticker & "," & rsiString & "," & "RSI" & ", "    & "TAPeriod=14" & "," & "DSClose=LAST_PRICE" & "," & "Per=d" & ")"

кажется, вы пропустили все побег персонажа

"=BTP(""" & ticker  & """,""" & rsiString  & """,""RSI"",""TAPeriod=14"",""DSClose=LAST_PRICE"",""Per=d"")"
Другие вопросы по тегам