我在公式中有一個范圍并且它有效:
=MAX(LN(A2:A7))

現在我想將此公式重建為自定義函式,但它不起作用。
Function testy(xr As Range)
n = WorksheetFunction.Max(WorksheetFunction.Ln(xr))
testy = n
End Function
它拋出一個錯誤:錯誤的資料型別。但我定義了“作為范圍”?為什么它不起作用,我該如何糾正它?
uj5u.com熱心網友回復:
使用Application.Ln.
問題是WorksheetFunction.Ln接受 aDouble作為其引數。您隱式地將它傳遞給.Value一個多單元格范圍,這是一個Variant陣列。
使用 late-bound Application.Ln,可以傳遞一個陣列(并回傳一個陣列):
Function testy(ByVal xr As Range) As Double
testy = WorksheetFunction.Max(Application.Ln(xr))
End Function

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/350313.html
上一篇:決議命令列時出錯:無法識別的選項“--wiredTigerCacheSizeGB2”
下一篇:VBA:如何從函式傳遞字串陣列
