卸载 Excel 互操作加载项时卸载加载项 .xla

Unload addin .xla when uninstall Excel interop add-in

我有一个 Excel 互操作模块 A(显示在菜单栏上),它会在加载 Excel 时加载另一个 Excel 加载项 B.xla .

A 由 msi 安装程序安装到 Excel。 B.xla 通过

收费
AddIn addin = excelApp.AddIns.Add(xlaFile);
if (!addin.Installed)
     addin.Installed = true;

当我卸载A时,安装程​​序带来的文件B.xla被删除了。 A 也从菜单栏和 COM 加载项列表中删除。但是,B 并未从宏加载项列表中删除。

所以卸载A后,第一次打开Excel时,会提示"Add-in B is missing"。我需要去宏加载项管理器取消选中B。点击取消选中后,Excel会再次说找不到B,并将其从列表中删除。

如何在不通过加载项 dialog/manager 的情况下以编程方式卸载 A 后从列表中停用和删除 B?当我执行 A 的更新时,这是一个问题。A 从菜单栏中删除,B.xla(文件本身)与 A 一起删除,但加载项对话框中 B 的条目仍然存在, 并将阻止尝试将新 B 注册到加载项对话框的更新。

非常感谢。

不要使用 Addins.Add - 只需让 A 打开 XLA,就好像它是工作簿一样。然后当 Excel 关闭时,XLA 将关闭,您不需要与 Addins 管理器混淆。