范围适用于公式但不适用于自定义函数
Range works in formula but not in custom function
我在公式中有一个范围并且有效:
=MAX(LN(A2:A7))
现在我想将这个公式重建为自定义函数,但它不起作用。
Function testy(xr As Range)
n = WorksheetFunction.Max(WorksheetFunction.Ln(xr))
testy = n
End Function
它抛出一个错误:错误的数据类型。但是我定义了“As Range”?
为什么它不起作用,我该如何纠正它?
使用Application.Ln
.
问题是 WorksheetFunction.Ln
接受 Double
作为其参数。您隐式地将多单元格范围的 .Value
传递给它,这是一个 Variant
数组。
使用后期绑定 Application.Ln
,可以传递一个数组(并返回一个数组):
Function testy(ByVal xr As Range) As Double
testy = WorksheetFunction.Max(Application.Ln(xr))
End Function
我在公式中有一个范围并且有效:
=MAX(LN(A2:A7))
现在我想将这个公式重建为自定义函数,但它不起作用。
Function testy(xr As Range)
n = WorksheetFunction.Max(WorksheetFunction.Ln(xr))
testy = n
End Function
它抛出一个错误:错误的数据类型。但是我定义了“As Range”? 为什么它不起作用,我该如何纠正它?
使用Application.Ln
.
问题是 WorksheetFunction.Ln
接受 Double
作为其参数。您隐式地将多单元格范围的 .Value
传递给它,这是一个 Variant
数组。
使用后期绑定 Application.Ln
,可以传递一个数组(并返回一个数组):
Function testy(ByVal xr As Range) As Double
testy = WorksheetFunction.Max(Application.Ln(xr))
End Function