2

我想从我的 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()

我究竟做错了什么?

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

4

1 回答 1

0

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

在您的示例中,您将返回一个 2x2 数组 - 选择一个范围(大小准确)并将公式写入选择的第一个单元格中。
例如,说您选择A1至B2,按F2,在单元格A1中输入公式(而选择为活动),然后您也应该能够看到写入B1,A2,B2的值。

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

于 2013-03-01T08:18:06.333 回答