Bloomberg BDS Формула Функция для VBA
Ниже приведена формула Bloomberg BDS, которую я использую для получения информации о наборе данных из Bloomberg. Эта формула обычно работает с помощью ручного плагина в электронную таблицу, но слишком сложно сделать это вручную для 80 идентификаторов CUSIP.
=BDS(A5&"" CUSIP"",""MTG_Cash_Flow"",""MTG_Face_AMT"",C5,TEXT(""Settle_DT"",""mmddyyyy""),$B$1,""Headers=y"",""cols=6;rows=184"")"
Моя цель состоит в том, чтобы скрыть приведенную выше формулу и настроить ее как формулу Excel VBA, чтобы ежемесячно получать информацию одним нажатием кнопки для получения информации.
Так как я не знаком с настройкой формата формулы Bloomberg в VBA. Я хотел бы получить некоторую помощь с моей формулой ниже, которую я пытался настроить. Я получил несколько ошибок при запуске формулы ниже, но не могу понять это. Я также приложил изображение листа, над которым я работаю, например.
Пересмотренная формула BDS 3.14.18
Используемое поле даты 3.14.18
Sub CalcValues()
Dim cusipID As String
cusipID = Sheets("Input").Cells(5, 1)
Dim Cusip As String
Cusip = "CUSIP"
Dim MTGFLOW As String
MTGFLOW = "MTG_CASH_FLOW"
Dim MTGAmt As Long
MTGAmt = Sheets("Input").Cells(5, 3).Value
Dim SettleDT As String
SettleDT = "Settle_DT"
Dim dtStart As String
dtStart = Formart(SettleDT,Format(Sheets("Input").Range("B3"), "MMDDYYYY"))
Sheets("CFs").Cells(2, 1) = "=BDS("" & CusipID & "","" & CUSIP & "","" & MTGFLOW & "","" & MTGAmt & "","" & SettleDT & "","" & dtStart & "")"
End Sub
1 ответ
Пытаться "=BDS(" & CusipID & "& "" CUSIP""," & MTGFLOW & ", ""MTG_Face_AMT""," & MTGFace & "," & EndDate & ",""Headers = y"",""cols=6;rows=184"")"
для формулы (не уверен, что понял все правильно, по Bloomberg)
СОВЕТ: ""
переводится как кавычка в самой ячейке, а "
говорит VBA, что строка начинается / заканчивается
Кроме того, вы не можете сделать Dim CusipID as Integer
учитывая, что ячейка, на которую вы ссылаетесь, также содержит буквы (38378KH93) - просто Dim CusipID as String
сразу.MTGFace
с другой стороны, это число (номинал), так что его можно сохранить как Long
или же Double
(не Integer
).