如何从Excel udf返回一个数组?

时间:2013-03-01 07:34:45

标签: c# excel user-defined-functions

我想从Excel UDF返回一个二维数组,但它似乎只返回第一个元素:

public object[,] Get2DArray()
{         
     object [,] a = new object[2, 2];
     a[0,0] = 0;
     a[0,1] = 1;
     a[1,0] = 2;
     a[1,1] = 3;
     return a;
}

调用的位置如下:

=Get2DArray()

我做错了什么?

编辑:数组的大小可能会不时更改,因此我不想指定结果将填充的范围的大小。

1 个答案:

答案 0 :(得分:0)

因为它是一个二维数组,所以无法将数组的内容分配给单个单元格。

从您的示例中,您将返回一个2x2数组 - 选择一个范围(具有确切大小)并在选择的第一个单元格中写入公式。
对于例如假设您选择A1到B2,按 F2 ,在单元格A1中键入公式(选择处于活动状态时),然后您应该能够看到写入B1,A2,B2的值

据我所知,返回值数组可以是动态的。我不知道如何处理。但是,您可以在VBA中完成此操作而不是使用UDF。