Bloomberg BDS公式功能到VBA

时间:2018-02-14 01:49:40

标签: excel vba excel-vba excel-formula bloomberg

以下是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 :(得分:0)

试试"=BDS(" & CusipID & "& "" CUSIP""," & MTGFLOW & ", ""MTG_Face_AMT""," & MTGFace & "," & EndDate & ",""Headers = y"",""cols=6;rows=184"")" 为公式(不确定我完全正确的彭博社)

提示:""在单元格本身中被翻译为引号,而"告诉VBA字符串正在开始/结束

此外,鉴于您引用的单元格也包含字母(38378KH93),您不能Dim CusipID as Integer - 只需Dim CusipID as String即可MTGFace。 另一方面,Long是一个数字(面值),因此可以保存为DoubleInteger(请注意,而不是SignUpActivity)。