Надстройки не загружаются при программном открытии файла Excel

Я видел некоторые похожие проблемы, описанные другими ранее, но без реального решения. И я уверен, что он есть.

У меня есть .XLA-add, настроенный для загрузки при открытии Excel. Он отлично работает, когда я открываю документы или сам Excel. Однако, когда моя BI-система программно создает и открывает файл Excel, надстройка не загружается. BI-система открывает Excel в новом экземпляре, поэтому предварительное открытие Excel (и, следовательно, расширение .XLA) не помогает.

Если я проверю Параметры-Добавить Ins, похоже, что надстройка загружена, но это не так!

Что я пробовал (и это действительно работает), так это вставить эту функцию в созданный файл excel и "перезагрузить" надстройки, но я хочу найти автоматизированное решение!

Function ReloadXLAddins(TheXLApp As Excel.Application) As Boolean
    Dim CurrAddin As Excel.AddIn

    For Each CurrAddin In TheXLApp.AddIns
        If CurrAddin.Installed Then
            CurrAddin.Installed = False
            CurrAddin.Installed = True
        End If
    Next CurrAddin
End Function

Есть ли способ автоматически загружать мои надстройки при программном создании экземпляра Excel?

Мы высоко ценим любые советы, решения или обходные пути!

С наилучшими пожеланиями.


person Olle    schedule 04.08.2014    source источник
comment
Но что мешает вам запустить эту функцию автоматически в экземпляре Excel, который вы автоматически запустили?   -  person GSerg    schedule 20.11.2019


Ответы (1)


Это может быть невозможно в VBA. Я сталкивался с этой проблемой раньше и использовал реализацию, найденную здесь: взаимодействие Excel, загружающее файлы XLL и DLL

Однако это решение предназначено для C #. Требуемые шаги могут быть невозможны при использовании сценария Excel VBA. Возможно, есть некоторые реализации VBA, на которые вы можете взглянуть, но я хотел дать вам некую отправную точку, потому что я знаю, что это неприятно.

person getglad    schedule 13.08.2014
comment
Спасибо! Проверим, к сожалению, мои знания C # очень ограничены, и мой доступ на работе также ограничен (установка программ и т. Д.) - person Olle; 20.08.2014