我正在编写一个快捷键事件处理程序,以便在用户键入函数然后按下键盘快捷键时实现活动。
据我了解ExcelApp.Evaluate("myFunc()")
是要走的路。
但是,在我的XLL Addin中,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
答案 0 :(得分:1)
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