Я делаю некоторое кодирование надстроек 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 ссылка сохраняется
Есть ли способ сделать эту добавленную ссылку сохраненной навсегда? Или я что-то упустил?