Загрузка дополнений, когда Excel инстанцируют программно

Я пытаюсь создать новый экземпляр Excel с помощью использования VBA:

Set XlApp = New Excel.Application

Проблема состоит в том, что этот новый экземпляр Excel не загружает все дополнения, которые загружаются, когда я обычно открываю Excel... Есть ли что-нибудь в Объекте приложения Excel для загрузки во всех указанных пользователями дополнениях?

Я не пытаюсь загрузить определенное дополнение, а скорее подавать новую заявку Excel ведут себя, как будто пользователь открыл ее themself, таким образом, я действительно ищу список всех выбранных пользователями дополнений, которые обычно загружаются при открытии Excel.

15
задан GSerg 20 November 2019 в 08:58
поделиться

3 ответа

Я снова посмотрел на эту проблему, и в коллекции Application.Addins, похоже, есть все надстройки, перечисленные в меню «Инструменты-> Надстройки», с логическим значением, указывающим, установлен ли надстройка или нет. Поэтому сейчас мне кажется, что мне нужно перебрать все надстройки, и если .Installed = true, тогда я установил .Installed в False и обратно в True, и это, похоже, правильно загружает мои надстройки.

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
26
ответ дан 1 December 2019 в 02:02
поделиться

Используя CreateObject("Excel.Application") имел бы тот же результат как использование New Excel.Application, к сожалению.

Необходимо будет загрузить Дополнения, в которых Вы нуждаетесь индивидуально путем к файлу и именем с помощью Application.Addins.Add(string fileName) метод.

5
ответ дан 1 December 2019 в 02:02
поделиться

Попытка:

Set XlApp = CreateObject("Excel.Application")

-2
ответ дан 1 December 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: