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

Сообщение об ошибке 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).

Другие вопросы по тегам