У меня проблема с запуском формулы Bloomberg BDH через код VBA.
Формула в коде отлично работает при выполнении на листе Excel в формате формулы (ввод формулы в ячейку)
но когда я помещаю формулу в код VBA и, соответственно, заново ее печатаю, я получаю ошибку, которую не могу понять.
это формула, выполняемая в ячейке (которая работает следующим образом):
=BDH("CNC US Equity","Best_Ask,Best_Bid,Trade","2019-02-06 09:00:00","2019-02-07 22:00:00","Dir=V","IntrRw=true","CondCodes=S","QRM=S","Spread=S","ExchCode=S","Dts=S")
В VBA BDH formula
через InputSheet
я ссылаюсь на акцию, например, CNC US Equity
, необходимые параметры Best_Ask,Best_Bid,Trade
и dates
.
формула должна быть вставлена в несколько ячеек на нескольких листах, ссылаясь в каждом случае на разные equity
и разные date range
, вот где у меня проблема с кодомдаже вставить формулу в ячейку, я трижды проверил каждое значение, на которое есть ссылка в формуле, но все кажется правильным, я даже запустил формулу test excel Worksheets(Exportsheet1).Cells(1, z).Value = "=SQRT(4)"
, чтобы увидеть, есть ли какие-либо проблемы в коде, ноничего не нашел.
Dim name1(423) As Variant
Dim out2(33, 17) As Variant
Dim A As Variant
Dim B As Variant
Dim C As Variant
Dim B1 As Variant
Dim B2 As Variant
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim t As Integer
Dim w As Integer
Const InputSheet = "DATA"
Const InputRange = "D2:AB424"
Const nameRange = "C2:C424"
Const Exportsheet1 = "Tempo1"
Const Exportsheet2 = "Tempo2"
Const Exportsheet3 = "Tempo3"
Const Exportsheet4 = "Tempo4"
Const Exportrange1 = "A1:AX34"
Sheets(InputSheet).Activate
z = 1
For x = 1 To 100
For y = 2 To 26
If IsEmpty(Worksheets(InputSheet).Cells(x, y).Value) = False Then
'Worksheets(Exportsheet1).Cells(1, z).Value = "=SQRT(4)"
Worksheets(Exportsheet1).Cells(1, z).Value = "=BDH(WorkSheets(InputSheet).Cells(x, 1).Value;WorkSheets(InputSheet).Cells(424, 1).Value;""""WorkSheets(InputSheet).Cells(x, y).Value - 1)"""";""""WorkSheets(InputSheet).Cells(x, 1).Value"""";""""Dir=V"""";""""IntrRw=true"""";""""CondCodes=S"""";""""QRM=S"""";""""Spread=S"""";""""ExchCode=S"""";""""Dts=S"""")"
z = z + 1
End If
Next y
Next x
End Sub