首页 文章

Bloomberg BDS公式功能到VBA

提问于
浏览
0

以下是Bloomberg BDS公式,用于从Bloomberg提取数据集信息 . 这个公式通常可以通过手动插件工作到电子表格中,但是手动操作大约80个CUSIPs ID太麻烦了 .

=BDS(A5&"" CUSIP"",""MTG_Cash_Flow"",""MTG_Face_AMT"",C5,TEXT(""Settle_DT"",""mmddyyyy""),$B$1,""Headers=y"",""cols=6;rows=184"")"

我的目标是将上述公式和设置转换为Excel VBA公式,通过单击按钮每月提取信息以生成信息 .

因为我不熟悉VBA中的Bloomberg公式格式设置 . 我想在下面的公式中得到一些帮助,我已经尝试过设置 . 我在运行下面的公式时遇到了多个错误,但无法弄清楚 . 我还附上了我正在处理的工作表的图像以及一个例子 .

Spreadsheet Sample

Revised BDS Formula 3.14.18

Date Field Used 3.14.18

Error Message 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 回答

  • 0

    尝试 "=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 是一个数字(面值),因此可以保存为 LongDouble (介意,而不是 Integer ) .

相关问题