【问题标题】:Bloomberg BDS Formula Function to VBA彭博 BDS 公式函数到 VBA
【发布时间】:2018-02-14 01:49:40
【问题描述】:

下面是彭博 BDS 公式我用来从彭博拉数据集信息。此公式通常通过手动插入到电子表格中来工作,但对于大约 80 个 CUSIP 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

【问题讨论】:

    标签: vba excel excel-formula bloomberg


    【解决方案1】:

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

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

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

    【讨论】:

    • 我已经实施了您的建议。我只剩下 1 个错误,即标记为“dtStart”的日期。错误消息说它是“#N/A Invalid Parameter: & dtStart &”。你碰巧知道如何调整它以读取 yyyymmdd 格式或让它工作吗?我似乎根本无法让那部分工作:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    相关资源
    最近更新 更多