My Excel
addin (XLL AddIn, gọi nó là MyAddIn
) được tạo bằng C#, ExcelDNA, NetOffice, VS2010. Khách hàng có một addin khác (hãy gọi nó là B
), tôi đoán nó được viết bằng VBA. Khách hàng nói B
hoạt động tốt mà không cần MyAddIn
. Khi MyAddIn
được cài đặt, B
thất bại với lỗi:Lỗi Excel 406 khi sử dụng cả hai bổ trợ VBA và ActiveX.
Error code: 406 Error message: Non-modal forms cannot be displayed in this host application from an ActiveX DLL, ActiveX Control, or Property Page.
tôi đã thấy this Microsoft resource, nhưng tôi không muốn chỉ nói với khách hàng rằng B
addin cần thay đổi. Tôi muốn làm điều gì đó để tránh điều này từ phía tôi.
Dưới đây là các bước báo cáo cho thấy các vấn đề:
- Khi B addin được cài đặt, nó không thực hiện bất kỳ mục đăng ký cho Microsoft
Excel
. - Khi
MyAddin
được cài đặt, nó tạo một mục đăng ký cho MicrosoftExcel
. - mục đăng ký ở đây về cơ bản nói rằng addin sẽ được mở khi
Excel
được khởi chạy, do đó,B
addin không được khởi chạy,Excel
hoạt động tốt,MyAddIn
hoạt động tốt. - Bây giờ khi
B
addin được khởi chạy, nó sẽ hiển thị lỗi 406 được hiển thị ở trên. - Chúng tôi có thể bỏ qua lỗi và tiếp tục làm việc với phần bổ trợ
B
; vô hiệu hóaMyAddIn
là giải pháp thay thế. - Khi phần bổ trợ
B
được khởi chạy, chúng tôi thấy rằngMyAddIn
được tải trước tiên trước khi bổ sungB
và sau đó nhận được lỗi 406. - Khi chúng tôi gỡ cài đặt
MyAddIn
, lỗi này không còn gặp phải và mọi thứ hoạt động tốt. - Để xóa lỗi này, chúng tôi đã thử thay đổi thứ tự đăng ký để làm cho phần bổ trợ
B
luôn mở trướcMyAddin
.- Công trình này, nhưng sau đó thay đổi toàn cầu cho Microsoft
Excel
, nghĩa làB
addin sẽ luôn mở, ngay cả khi chúng tôi khởi chạy chỉExcel
. Điều này là không mong muốn, vì không thể cho phép người dùng làm việc với dữ liệu tĩnh vì phần bổ trợB
làm mới thời gian thực. Đó là lý do add-inB
không tạo mục nhập trong cài đặt đăng ký. Vì vậy, thay đổi đăng ký không phải là một lựa chọn. Chúng tôi không thể luôn mởB
addin bất cứ khi nàoExcel
mở.
- Công trình này, nhưng sau đó thay đổi toàn cầu cho Microsoft
Như đã đề cập trong thông báo lỗi, MyAddIn đang cố gắng hiển thị biểu mẫu không theo phương thức, gây ra sự cố. Bạn cần phải tìm ra hình thức của nó. Nó cũng sẽ giúp đỡ nếu bạn có thể đăng một số mã. – Tarik