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.ActiveSheet
或 xlApp.ActiveWorkbook
)。
编码 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.ActiveSheet
或 xlApp.ActiveWorkbook
)。