VBA: в ожидании завершения Bloomberg BDP звонков - PullRequest
4 голосов
/ 28 ноября 2010

У меня есть скрипт, который импортирует некоторые внешние данные в таблицу, что, в свою очередь, влияет на некоторые формулы =BDP(...).Оптимально, я хотел бы сделать несколько проверок результатов BDP сразу после копирования данных.

Надстройка Bloomberg Excel обновляется асинхронно - как мне дождаться результатов, а затем возобновить выполнение сценария?Кажется, что результаты импортируются только после завершения сценария VBA, независимо от того, как долго он выполняется.

Заранее спасибо Martin

1 Ответ

7 голосов
/ 29 ноября 2010

Я построил нечто подобное, используя BDH.Мне пришлось отключить контроль, чтобы надстройка Bloomberg могла собирать данные, а затем возобновлять мой код.Я смог сделать это с помощью Application.OnTime.

Например, если у вас есть функция «CheckForData», которая влияет на вызовы = BDP, и другая функция «ProcessData», которая проверяет результаты, выполните асинхронный вызов «ProcessData» в «CheckForData»,например,

Sub CheckForData
  ' Your code here
  Application.OnTime Now + TimeValue("00:00:05"), "ProcessData"
End Sub

Затем в ProcessData выполните ваши проверки.

...