Excel evaluate()返回对象[,]
本文关键字:对象 返回 evaluate Excel | 更新日期: 2023-09-27 18:18:20
我正在编写一个短键事件处理程序来实现活动,当用户键入一个函数,然后按键盘快捷键。
据我所知,ExcelApp.Evaluate("myFunc()")
是前进的道路。
然而,在我的XLL插件中,myFunc返回类型object[,]
,而Evaluate()
只返回类型对象
是否有办法将object
转换为object[,]
?
object myArray = ExcelApp.Evaluate(functioname);
if (myArray is object[,])
{
int height = myArray.GetLength(0); //Does not recognise GetLength, even though it's an object[,] method
Evaluate
可能是可行的,也可能不是,这取决于您到底想要什么。
如果你想对地址之类的东西求值,那么是的,它是。
否则,有Application.Run
。
对于这个问题,Excel的函数返回OLE Variant
,它可以包含/引用任何东西,包括数组。从Excel端,处理这个不需要任何代码的努力。
object[,] foo = (object[,])this.Application.WorksheetFunction.Transpose(new object[] {1,2,3,4} );
MessageBox.Show ( foo.GetLength(0).ToString() ); // shows 4