如何从Excel udf返回数组

本文关键字:返回 数组 udf Excel | 更新日期: 2023-09-27 18:01:45

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

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()

我做错了什么?

编辑:数组的大小可能会随时改变,所以我不想指定结果将填充的范围的大小。

如何从Excel udf返回数组

因为它是一个二维数组,数组的内容不能分配给单个单元格。

从您的示例中,您将返回一个2x2数组-选择一个范围(它是精确的大小)并将公式写入选择的第一个单元格。
例如,假设你选择A1到B2,按F2,在单元格A1中键入公式(当选择是活动的),然后你应该能够看到值写入B1, A2, B2以及。

我知道返回值数组可以是动态的。我不知道该怎么处理。但是,您可以在VBA中完成此操作,而不是使用udf。