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

时间:2015-05-07 14:33:07

标签: excel interop action add-in uninstall

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

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

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

卸载A时,删除安装程序带来的文件B.xla。 A也会从菜单栏和COM加载项列表中删除。但是,B不会从宏加载项列表中删除。

因此,在卸载A后,当我第一次打开Excel时,会显示一条消息,说明"缺少加载项B"。我需要去宏加载项管理器取消选中B.单击取消选中后,Excel会再次说它找不到B,并从列表中删除它。

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

非常感谢。

1 个答案:

答案 0 :(得分:1)

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