0

我有:

  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 宏访问Marshal.GetActiveObject("Excel.Application").COMAddIns.Item("MyAddinName").Object称为(Excel DNA)的 c# 代码我通常能够获得上述类。但是在某些机器上,这个引用是空的。

有谁知道可能是什么原因?

4

2 回答 2

0

首先确保 COMAddins 在两台机器的 Developer => Com Add-Ins 按钮中可用。

于 2013-07-26T09:03:54.967 回答
0

在您的 Excel-DNA 加载项中,您应该始终通过调用ExcelDnaUtil.Application. 否则,使用像GetActiveObject(...)您这样的错误代码可能会在该机器上运行另一个 Excel 实例。

于 2015-12-04T08:41:20.407 回答