VBA – 错误数组双作为函数参数

我试图开发一个数组作为inputfunction。 不过,我正在收到#VALUE! 错误。 function代码如下:

 Function foo(x() As Double) As Double foo = x(1) + x(2) End Function 

通话是用下面的公式完成的:

 =foo($E$8:$E$9) 

E8和E9对应两个数字。

我的代码有什么问题?

$E$8:$E$9的types是Range而不是Doubletypes的数组。 你的UDF失败了。


一旦将参数types更改为Range ,只要您将2X1(2Rows,1列)范围与数值一起传递,它就可以用于x(1) + x(2)

 Function foo(rng As Range) As Double foo = rng(1) + rng(2) End Function 

要创build一个有意义的UDF,您需要检查代码中的维度,范围的数据types。

我build议使用一个变体作为参数:更有效率和更less的错误倾向

  Function foo(x As Variant) As Double x=x.value2 foo = x(1, 1) + x(2, 1) End Function