如何将Excel参数元素添加到VSTO插件中

本文关键字:VSTO 插件 添加 元素 Excel 参数 | 更新日期: 2023-09-27 18:05:39

我想实现Excel参数元素(像默认函数,udf等,允许手动选择单元格)到VSTO插件

我已经尝试了Excel-DNAExcelFunction - ExcelArgument,但是我需要返回一个未知长度的2D数组,而不仅仅是一个单元格,所以这不是解决方案。

我已经尝试过Office插件元素,但我需要能够手动选择范围并将它们发送到插件子表单,我还没有弄清楚如何停用子表单,使其显示,激活Excel窗口,获取数据,然后将其发送回子表单。

是否有任何方法可以获得ExcelArgument元素的类似功能?

如何将Excel参数元素添加到VSTO插件中

一种方法是创建一个用户定义的函数,该函数返回一个数组,但随后将其封装在一个自动调整大小的宏中。Excel-DNA在ArrayResizer示例中有这样一个宏。

然后你可以输入=Resize(MyArrayFunction(A1:B5)),它会自动调整大小到正确的结果大小。或者你可以直接在MyArrayFunction中加入大小调整。

如果你想用WinForms创建一个表单或对话框,让用户选择输入,然后将数据粘贴到工作表中,你需要一个'RefEdit'控件来进行范围选择。两个例子是http://blogs.msdn.com/b/gabhan_berry/archive/2008/06/12/net-refedit-control.aspx和http://www.codeproject.com/Articles/34425/VS-NET-Excel-Addin-Refedit-Control。你也可以搜索"RefEdit WinForms"来获得更多的选项