Моя надстройка Excel
(надстройка XLL, назовите ее MyAddIn
) создана с помощью C#, ExcelDNA, NetOffice, VS2010. У клиента есть еще одна надстройка (назовем ее B
), я думаю, она написана на VBA. Клиент говорит, что B
отлично работает без MyAddIn
. После установки MyAddIn
B
завершается с ошибкой:
Код ошибки: 406 Сообщение об ошибке: немодальные формы не могут отображаться в этом ведущем приложении из DLL ActiveX, элемента управления ActiveX или страницы свойств.
Я видел этот ресурс Microsoft, но я не хочу просто сообщать клиенту, что B
надстройка нуждается меняется. Я хочу сделать что-то, чтобы избежать этого с моей стороны.
Вот шаги, о которых сообщается, чтобы увидеть проблему:
- Когда надстройка B установлена, она не делает никаких записей в реестре для Microsoft
Excel
. - При установке
MyAddin
в реестре создается запись для MicrosoftExcel
. - Записи реестра здесь в основном говорят о том, что надстройка должна быть открыта при запуске
Excel
, поэтому надстройкаB
не запускается,Excel
работает нормально,MyAddIn
работает нормально. - Теперь при запуске надстройки
B
выдает показанную выше ошибку 406. - Мы можем игнорировать ошибку и продолжить работу с надстройкой
B
; отключениеMyAddIn
является обходным путем. - При запуске надстройки
B
мы видим, что сначала загружается надстройкаMyAddIn
перед надстройкойB
, а затем получаем ошибку 406. - Когда мы удаляем
MyAddIn
, эта ошибка больше не возникает и все работает нормально. - To remove this error, we tried changing the registry order to make the
B
addin always open beforeMyAddin
.- This works, but then this a global change for Microsoft
Excel
, which meansB
addin will always open, even when we launch onlyExcel
. This is not desired, asB
addin then can't let users work with the static data as theB
addin keeps on refreshing real-time. That is the reason theB
addin doesn't make an entry in the registry settings. So registry changes are not an option. We can’t always openB
addin wheneverExcel
is open.
- This works, but then this a global change for Microsoft