Excel VBA检查是否安装了Addin但未打开
我有下面的代码来检查是否在从当前上下文中调用该Addin的脚本之前安装/可用插件:
Function IsAddinEnabled(addinName as string) As Boolean IsAddinEnabled = True Dim myAddin As addin On Error GoTo NotExists Set myAddin = Application.AddIns2(addinName) If myAddin.IsOpen = False Then ' this logic is my workaround myAddin.Installed = False 'uninstall myAddin.Installed = True ' install to "Open" the addin Else myAddin.Installed = True 'redundant End If Exit Function NotExists: IsAddinEnabled = False End Function
出现这个问题的时候:
myAddin.IsOpen = false
我不得不添加这个逻辑来重新安装插件。 卸载并重新安装插件是一个轻微的麻烦/放缓。 有没有办法强制和Addin“打开”,而无需重新安装插件?
更简单的方法是检查工作簿集合中是否存在插件。
如果没有,你可以打开它,就好像是一本工作簿,假设你知道path。
(不需要打扰插件收集)
Per @Charles Williams
这是我用过的方法:
Function IsAddinEnabled(addinName as string) As Boolean IsAddinEnabled = True Dim myAddin As addin On Error GoTo NotExists Set myAddin = Application.AddIns2(addinName) If myAddin.IsOpen = False Then ' this logic is my workaround Workbooks.Open myAddin.Path & "\" & myAddin.Name 'open the addin, if it's not open Else myAddin.Installed = True 'redundant End If Exit Function NotExists: IsAddinEnabled = False End Function