添加已安装和引用

时间:2013-04-11 14:32:49

标签: excel-vba add-in vba excel

我想检查addin是否已安装并被引用。是否安装了以下代码检查添加。我如何检查它是否在excel中被引用。

通过推荐我的意思是工具> Addins> Addins Dailog box>如果安装了addins>检查是否选中了具有特定名称的插件。

我最好没有任何循环。

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 

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

你需要测试的是插件是否打开,就像任何其他工作点一样。如果加载了插件,这将返回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

答案 2 :(得分:0)

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

Excel VBA Checking if Addin Is Installed But Not Open