Проблемы с распространением в электронной таблице с поддержкой Bloomberg - PullRequest
0 голосов
/ 19 июня 2019

Я создал электронную таблицу, в которой опционально использует данные Bloomberg, извлекаемые с использованием библиотеки типов API COM 3.5. Я хочу иметь возможность распространять эту таблицу среди пользователей, не входящих в Bloomberg, но они не могут ее запустить, поскольку у них нет нужных библиотек.

Весь код, связанный с blpapi, кроме того, что находится в модуле класса, находится позади, если операторы, которые не должны вводиться пользователями не-BB. В модуле класса я лениво определяю сессию и Сервис так, чтобы специфичные для blpapi определения задерживались до инициализации класса (см. Ниже):

Option Explicit
Private session As Object
Dim refdataservice As Object

Private Sub Class_Initialize()

   ' First create session.
   Set session = New blpapicomLib2.session
   session.QueueEvents = True
   session.Start

   ' Then open service.
   ' A service provides the schemas needed to make requests.
   session.OpenService "//blp/refdata"
   Set refdataservice = session.GetService("//blp/refdata")

End Sub

Короче говоря - код, вызывающий проблемы, никогда не запускается. Мое (очень ограниченное) понимание VBA в основном функционально, поэтому я, вероятно, упускаю что-то очевидное. Это ошибка, связанная с компиляцией? Есть ли способ для меня предварительно скомпилировать VBA, чтобы пользователи не сталкивались с этой проблемой? Может быть, какой-то метод обработки ошибок, чтобы книга не зависала?

1 Ответ

0 голосов
/ 21 июня 2019

Вот мое решение для моей собственной проблемы:

У меня было две функции с входами, которые использовали специфичные для библиотеки типы.Я преобразовал их в универсальные объекты (использование позднего связывания в сеансе и refdataservice было недостаточно).Затем я отменил выбор библиотеки bbcom и добавил динамическую ссылку на файл dll в Workbook_Open ().Даже если загрузка не удалась, ошибку можно отследить, тогда как раньше нужно было убить Excel.Это по-прежнему проблема, если пользователь пытается использовать часть книги, которая использует код, связанный с BB, но это может быть смягчено несколькими различными способами.

...