2017-08-01 90 views
0

我想通过VBA在我的Excel应用程序中打印所有的COM插件,但下面的代码有问题。错误似乎是为每条线...任何想法非常赞赏VBA打印所有COM插件

Sub showAddins() 
    Dim excelApp As Excel.Application 
    Dim myAddin As Excel.AddIn 

    Set excelApp = CreateObject("Excel.Application") 

    For Each myAddin In excelApp.COMAddIns 

     Debug.Print myAddin.Name 

    Next myAddin 

End Sub 
+0

你确定你已经安装了COM-外接程序?如果没有AddIns,'COMAddIns'会抛出错误而不是跳过循环。 此外,我不认为你需要一个新的'Excel.Application'对象,只需使用'应用程序'应该做的伎俩。 – FunThomas

+0

是的,我有一些是'打勾',一个不是。最终,我试图实现的目标是通过VBA“勾选”所有的COM Addins ...任何进一步的想法? – whada

回答

0

加载项不加载使用自动化打开Excel的时候,所以也没有人在你的代码中创建新实例加载。

在你已经打开的Excel实例只需使用现有的应用参考:

Sub showAddins() 

    Dim myAddin 'as variant 

    For Each myAddin In Application.COMAddIns 

     Debug.Print myAddin.Description '<< not Name 

    Next myAddin 

End Sub 
+0

感谢蒂姆 - 虽然仍然收到相同的错误信息。它像Application.COMAddIns一样造成了麻烦。如果我将COMAddins更改为AddIns,只有代码可以正常工作。我想打印COM Addins列表 - 在Excel Options - > Add-Ins - > Manage - > COM Addins – whada

+0

查看我的更新 - 我没有测试过,所以有几个问题,例如'Name'不是加载项上的属性。 –

+0

感谢此打印是描述。我想检查插件是否已加载/安装,您是否也可以提供帮助?我试过如果myAddin.Installed然后...但这给了我错误 – whada