My Excel
addin (XLL AddIn, call it MyAddIn
) построен с С#, ExcelDNA, NetOffice, VS2010. У клиента есть еще один addin (пусть назовите его B
), я думаю, он написан в VBA.
Клиент говорит, что B
отлично работает без MyAddIn
. Как только MyAddIn
установлен, B
выходит из строя с ошибкой:
Код ошибки: 406 Сообщение об ошибке: немодальные формы не могут отображаться в этом хост-приложении из ActiveX DLL, элемента управления ActiveX или страницы свойств.
Я видел этот ресурс Microsoft, но я не хочу просто сообщать клиенту, что B
addin необходимо изменить. Я хочу сделать что-то, чтобы избежать этого с моей стороны.
Ниже приведены шаги, описанные для устранения проблемы:
- Когда B addin установлен, он не делает записи реестра для Microsoft
Excel
. - Когда
MyAddIn
установлен, он записывает запись в MicrosoftExcel
. - Записи реестра здесь в основном говорят о том, что addin следует открывать при запуске
Excel
, поэтомуB
addin не запускается,Excel
отлично работает,MyAddIn
работает нормально. - Теперь, когда запускается
B
addin, он дает ошибку 406, показанную выше. - Мы можем игнорировать ошибку и продолжать работать с
B
addin; отключениеMyAddIn
является обходным путем. - Когда запускается
B
addin, мы видим, чтоMyAddIn
загружается сначала перед добавлениемB
, а затем получает ошибку 406. - Когда мы удаляем
MyAddIn
, эта ошибка больше не встречается, и все работает нормально. - Чтобы удалить эту ошибку, мы попытались изменить порядок регистрации, чтобы сделать
B
addin всегда открытым доMyAddIn
.- Это работает, но тогда это глобальное изменение для Microsoft
Excel
, что означает, чтоB
addin всегда открывается, даже когда мы запускаем толькоExcel
. Это нежелательно, так какB
addin не может позволить пользователям работать со статическими данными, поскольку добавлениеB
продолжает обновляться в режиме реального времени. По этой причине добавлениеB
addin не делает запись в настройках реестра. Поэтому изменения реестра не являются вариантом. Мы всегда можем открыватьB
addin при открытииExcel
.
- Это работает, но тогда это глобальное изменение для Microsoft