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
而不是Double
types的数组。 你的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