3

我想检查插件是否已安装并被引用。下面的代码检查插件是否安装。我如何检查它是否在excel中引用。

通过引用,我的意思是工具 > 插件 > 插件 Dailog 框 > 如果插件已安装 > 检查是否检查了具有特定名称的插件。

我希望最好没有任何循环。

Sub Demo() 
    Dim b As Boolean 
    b = CheckAddin("Solver add-in") 
    MsgBox "Solver is " & IIf(b, "", "not ") & "installed" 
End Sub 

Function CheckAddin(s As String) As Boolean 
    Dim x As Variant 
    On Error Resume Next 
    x = AddIns(s).Installed 
    On Error Goto 0 
    If IsEmpty(x) Then 
        CheckAddin = False 
    Else 
        CheckAddin = True 
    End If 
End Function 
4

3 回答 3

5
Sub Sample()
    Dim wbAddin As Workbook

    On Error Resume Next
    Set wbAddin = Workbooks(AddIns("My Addin").Name)

    If Err.Number <> 0 Then
        On Error GoTo 0
        'Set wbAddin = Workbooks.Open(AddIns("My Addin").FullName)
        Debug.Print "Not Referenced"
    Else
        Debug.Print "Referenced"
    End If
End Sub
于 2013-04-11T14:54:47.037 回答
3

您需要测试插件是否打开,就像任何其他工作簿一样。如果加载了插件,这将返回 True:

Function AddinIsLoaded(AddinName As String) As Boolean
On Error Resume Next
AddinIsLoaded = Len(Workbooks(AddIns(AddinName).Name).Name) > 0
End Function

例如:

Sub Test
Debug.Print AddinIsLoaded("Solver add-in")
End Sub
于 2013-04-11T14:54:01.163 回答
0

我遇到了一个问题,即使函数返回 True,在尝试使用该插件时我仍然会收到错误消息。事实证明,可以安装插件,但不能“打开”。所以,除了检查插件外,我还要检查插件文件是否打开。如果没有,我打开插件。在这里查看我的问题和答案:

Excel VBA检查插件是否已安装但未打开

于 2016-09-09T16:30:35.687 回答