我有一个名为getYear的VBA函数,初始化如下:
Public Function getYear(ByVal year As Date, Optional ByVal month As Date) As Long
然后,在我的函数内部:
msg = MsgBox(IsEmpty(month), vbOKOnly)
所以我知道这个月是否已输入该功能。
唯一的问题是我是否有一个函数调用,例如:getYear(currentYear)
或getYear(currentYear, currentMonth)
isEmpty
总是返回False
如果我在致电getYear(currentYear)
isEmpty()
时应该正确理解这一点,则应该返回True
,但不是...... {/ p>
我收集的是我的函数初始化,但我不知道还能做什么。
感谢任何帮助!
答案 0 :(得分:2)
来自MSDN:
IsEmpty only returns meaningful information for variants
您还可以使用IsMissing()
来检查是否将可选参数传递给函数,但这也适用于变量。您可能想要检查可选参数的值是否等于其默认值,即日期为零。
答案 1 :(得分:0)
您可以为“月”创建一个默认值,该值为零或负数,或超出可能的条目范围。然后,您可以只测试该默认值,而不是使用IsMissing或IsEmpty。如果month =默认值,则表示该参数未传递给函数。