我正在做一个VBA项目,从Bloomberg获取金融数据并计算回报率.目前有2020到2022年的数据。我如何在代码中放入一个动态检查,检查2023年的数据是否可用,如果可用,则使用2021年至2023年的数据更新计算?
以下是我现在使用的代码。
Function getTotalGrowth(k As Integer)
Dim bbg As New BBG_Function
Dim gdpGrowth As Variant
ReDim indexData(5, 2)
indexData(1, 1) = "ECGDEU 20 Index"
indexData(2, 1) = "ECGDEU 21 Index"
indexData(3, 1) = "ECGDEU 22 Index"
indexData(4, 1) = "XYZ Curncy"
indexData(5, 1) = "ABC Index"
indexData(1, 2) = "ECGDUS 20 Index"
indexData(2, 2) = "ECGDUS 21 Index"
indexData(3, 2) = "ECGDUS 22 Index"
indexData(4, 2) = "XYZ Curncy"
indexData(5, 2) = "ABC Index"
gdpGrowth = ((1 + bbg.BDP(indexData(1, k), "PX_LAST") / 100) * (1 + bbg.BDP(indexData(2, k),
"PX_LAST") / 100) * (1 + bbg.BDP(indexData(3, k), "PX_LAST") / 100) ^ 3) ^ (1 / 5) - 1
End Function
这个怎么样。
Dim y as Long, yStart as Long
if bbg.BDP("ECGDEU 23 Index", "PX_LAST") = 0 then
yStart=20
else
yStart=21
end if
for y=yStart to yStart+2
indexData(1, 1) = "ECGDEU " & y & " Index"
indexData(2, 1) = "ECGDEU " & y & " Index"
...
next