AddIn.Object在某些机器上返回null

时间:2013-07-24 15:17:09

标签: excel vsto

我有:

  1. VSTO Excel加载项;
  2. 覆盖对象RequestComAddInAutomationService(),它返回一个注释为
    的类的实例 [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] 并实现一个注释的界面
    [ComVisible(true)]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
  3. 从插件流程访问Globals.ThisAddIn.Application.COMAddIns.Item("MyAddinName").Object我可以获得上述类;
  4. 从VBA宏中调用c#代码(Excel DNA)访问Marshal.GetActiveObject("Excel.Application").COMAddIns.Item("MyAddinName").Object我通常能够获得上述类。但在某些机器上,此引用为空。
  5. 任何人都知道可能是什么原因?

2 个答案:

答案 0 :(得分:0)

确保开发者中的COMAddins可用=>首先在机器中使用Com Add-Ins按钮。

答案 1 :(得分:0)

在Excel-DNA插件中,您应始终通过调用ExcelDnaUtil.Application获取正确的Application对象。否则,对于像GetActiveObject(...)这样的错误代码,您可能会在该计算机上运行另一个Excel实例。