VSTO 加载项 VB.net 用户控件

VSTO AddIn VB.net UserControl

编码 VB.net

自定义用户控件 + Interop - 插件与 Excel

我一直在尝试为多个表单复制一个 refedit 框。

(RefEdit:控制到输入框中的 select 范围)

我会使用输入框,但仅以一种形式并不实用,我正在尝试使用 15 左右。

我成功地将自定义控件添加到表单中,并尝试了按钮的行为,但是当试图将其绑定到 excel 惊喜!我得到 System.NullReferenceException:'Referencia a objeto no establecida como instancia de un objeto.' 引用活动工作簿。

似乎 Excel.Application 实际上并没有为用户控件工作。

    _xlapp = New Excel.Application
    Xlwb = _xlapp.ActiveWorkbook 'Fires the Exception
    XlAsh = Xlwb.ActiveSheet

我试图通过 marshall 获取对象

     Dim _xlapp=Excel.Application
    _xlapp=ctype(GetObject("Excel.Application"),Excel.Application)
     Xlwb = _xlapp.ActiveWorkbook
     XlAsh = Xlwb.ActiveSheet

也一样

我也曾尝试删除 Usercontrol 项目中的引用(绝望地尝试过),因此它可能会绑定到插件活动实例。

我不太确定 Interop 的行为控制级别。

有什么想法吗?

您不需要创建 excel 应用程序的新实例,因为您已经有一个,您的插件是 运行。你需要使用
Dim xlApp As Excel.Application = Globals.ThisAddIn.Application
相反。
这将获得加载插件的应用程序对象,您将能够获得它的所有方法和属性(如 xlApp.ActiveSheetxlApp.ActiveWorkbook)。