我有:
RequestComAddInAutomationService()
,它返回一个注释为[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
并实现一个注释的界面[ComVisible(true)]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
Globals.ThisAddIn.Application.COMAddIns.Item("MyAddinName").Object
我可以获得上述类; Marshal.GetActiveObject("Excel.Application").COMAddIns.Item("MyAddinName").Object
我通常能够获得上述类。但在某些机器上,此引用为空。 任何人都知道可能是什么原因?
答案 0 :(得分:0)
确保开发者中的COMAddins可用=>首先在机器中使用Com Add-Ins按钮。
答案 1 :(得分:0)
在Excel-DNA插件中,您应始终通过调用ExcelDnaUtil.Application
获取正确的Application对象。否则,对于像GetActiveObject(...)
这样的错误代码,您可能会在该计算机上运行另一个Excel实例。