isEmpty()总是返回false
我有一个名为getYear的VBA函数,它的初始化如下:
Public Function getYear(ByVal year As Date, Optional ByVal month As Date) As Long
那么,在函数里面我有:
msg = MsgBox(IsEmpty(month), vbOKOnly)
所以我知道这个月是否已经在函数中input了。
唯一的是我是否有一个函数调用,如: getYear(currentYear)
或getYear(currentYear, currentMonth)
isEmpty
总是返回False
如果我正确的理解,当我调用getYear(currentYear)
isEmpty()
应该返回True
,但它不是…
我收集的是从我的函数初始化,但我不知道还有什么要做。
任何帮助表示赞赏!
来自MSDN:
IsEmpty only returns meaningful information for variants
你也可以使用IsMissing()
来检查一个可选的参数是否被传递给函数,但是这个函数也只能在Variant上运行。 您可能需要检查可选参数的值是否等于其默认值(date为零)。
您可以为“月”创build一个默认值,该值为零或负数,或超出可能条目的范围。 然后,而不是使用IsMissing或IsEmpty,您可以testing该默认值。 如果月=默认,你知道参数没有传递给函数。