Ссылка в коде Excel VBA не работает при первом запуске программы - PullRequest
1 голос
/ 25 марта 2019

Я делаю некоторое кодирование надстроек Excel (с помощью Excel 2016), которые также должны использоваться другим пользователем (с помощью Excel 365).

Чтобы манипулировать XML, я добавил ссылку на Microsoft XML, v6.0; все отлично работает на моей машине.

Выполнение кода на компьютере другого пользователя показывает, что ссылка не проверена (хотя dll-файл «underyling» доступен в ожидаемом местоположении файла).

Я добавил код для программного добавления ссылки (пока нет обработки ошибок):

Sub AddXmlReference()    
    Dim ref As Reference
    Dim existRef As Boolean
    existRef = False

    For Each ref In Application.VBE.ActiveVBProject.References
        If ref.Name = "MSXML2" Then
            existRef = True
        End If
    Next ref

    If existRef = False Then
        Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\SysWOW64\msxml6.dll"
    End If
End Sub

Запуск программы на компьютере другого пользователя показывает поведение, которое я не понимаю (и не могу найти ничего полезного): При первом запуске программы происходит ошибка (пользовательская ошибка в модуле, который пытается манипулировать XML); После этого программа работает хорошо. Если я закрою Excel и перезапущу, то же самое поведение начнется снова. Подводя итог, это выглядит так:

  • Excel не хранит ссылку (что, в некотором смысле, понятно, так как причины, лежащие в основе кода, открыты только для чтения; в некотором смысле, однако, это не так, поскольку базовый код имеет ссылку)

  • Во время выполнения кода добавленная ссылка не может быть использована

  • В течение одного сеанса Excel ссылка сохраняется

Есть ли способ сделать эту добавленную ссылку сохраненной навсегда? Или я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...