Excel evaluate()返回对象[,]



我正在编写一个短键事件处理程序来实现活动,当用户键入一个函数,然后按键盘快捷键。

据我所知,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

最新更新