내 Excel
addin (XLL AddIn, MyAddIn
)은 C#, ExcelDNA, NetOffice, VS2010으로 작성되었습니다. 클라이언트는 또 다른 addin을 가지고있다. (이것을 B
이라고 부르 자.) 나는 VBA로 작성된 것 같다. 고객이 MyAddIn
없이 B
이 정상적으로 작동한다고 말합니다. VBA 및 ActiveX 추가 기능을 모두 사용하는 경우 Excel 오류 406입니다.
내가 this Microsoft resource를 참조했지만 난 그냥Error code: 406 Error message: Non-modal forms cannot be displayed in this host application from an ActiveX DLL, ActiveX Control, or Property Page.
B
추가 기능이 변화하는 요구하는 클라이언트를 말하고 싶어하지 않습니다
MyAddIn
가 설치되면,
B
오류와 함께 실패합니다. 나는 내 편에서 이것을 피하기 위해 뭔가하고 싶다.
B의 추가 기능이 설치되어
- 는, 그것은 마이크로 소프트
Excel
에 대한 레지스트리 항목을하지 않습니다 여기에 이 문제를보고보고 단계입니다. MyAddin
이 설치되면 MicrosoftExcel
에 대한 레지스트리 항목이 만들어집니다.- 여기에 레지스트리 항목은 기본적으로
Excel
이 시작될 때 추가 기능을 열어야 함을 나타내므로B
addin이 실행되지 않아Excel
이 제대로 작동하므로MyAddIn
이 정상적으로 작동합니다. - 이제
B
addin이 실행되면 위에 표시된 406 오류가 발생합니다. - 오류를 무시하고 추가 기능
B
을 계속 사용할 수 있습니다. 해결 방법은MyAddIn
입니다. B
addin이 실행되면B
addin 전에 먼저MyAddIn
이로드 된 다음 406 오류가 발생합니다.MyAddIn
을 제거하면이 오류가 더 이상 발생하지 않으며 모든 것이 정상적으로 작동합니다.- 이 오류를 제거하기 위해
B
추가 기능을 항상MyAddin
전에 열도록 레지스트리 순서를 변경했습니다. 이 작동하지만, 다음이 우리가 단지Excel
를 시작하는 경우에도,B
추가 기능 항상 열리지을 의미 마이크로 소프트Excel
위한 글로벌 변화- . 이것은
B
addin으로 사용자가 정적 데이터로 작업 할 수 없기 때문에 바람직하지 않습니다.B
addin은 실시간으로 새로 고침을 계속합니다. 그것이B
addin이 레지스트리 설정에서 항목을 만들지 않는 이유입니다. 따라서 레지스트리 변경은 옵션이 아닙니다.Excel
이 열려있을 때마다 항상B
addin을 열 수는 없습니다.
- . 이것은
오류 메시지에서 언급 한대로 MyAddIn이 문제를 일으키는 넌 모달 폼을 표시하려고합니다. 그것이 어떤 형태인지 알아 내야합니다. 또한 코드를 게시 할 수 있다면 도움이 될 것입니다. – Tarik