函数参数列表中的可选对象

时间:2012-09-12 11:45:53

标签: vba

在Excel中调用Test1会为任何真实AB提供0。为什么会这样?

Public Function Min(X As Double, y As Double, Optional y2 As Double, Optional y3 As Double) As Double
    Min = Application.WorksheetFunction.Min(X, y, y2, y3)
End Function


Function Test1(A As Double, B As Double)
    Test1 = Min(A, B)
End Function

在Excel中:=Test1(5,2)

1 个答案:

答案 0 :(得分:0)

如果未将参数传递给函数,则可选参数将使用其默认值。 对于双打,默认值为0.如果您实际上未提供y2y3,则表示您正在测试Application.WorksheetFunction.Min(A,B,0,0)

如果要更改默认值,可以执行以下操作:

Public Function Min(X As Double, y As Double, Optional y2 As Double = 10000000, Optional y3 As Double = 10000000) As Double
    Min = Application.WorksheetFunction.Min(X, y, y2, y3)
End Function

这使得y2y3默认为10000000,这将是您新建的人工分钟。