vba 编译显示参数不可选
在VBA中处理可选参数对于所有变量类型,似乎没有可靠的方法来一致地处理这些问题。 正如我希望在下面说明的那样,每种方法都需要不同的方法。
变体变量这样的变量可以存储所有类型的不同值以及对象,并且它们具有
缺少标志,可以使用IsMissing()函数进行检查。Private Sub ProcName(Optional varX As Variant)
If IsMissing(varX) Then varX = ...
End Sub
标准变量
这些包括
字节 , 整数 , 长 , 单 , 双 , 货币 , 十进制 , 日期和字符串 。 这些操作通过分配默认值来处理,因为没有指定位来存储丢失标志。Private Sub ProcName(Optional intX As Integer = -1)
If intX < 0 Then ...
End Sub
对象变量
对象变量,即任何已定义类的变量(与特定类型的变量相反)
Object )也没有可用的Missing标志,因此在未设置为Nothing时会通过。Private Sub ProcName(Optional dbX As DAO.Database)
If dbX Is Nothing Then Set db = ...
End Sub
我希望在遇到其他类型或其他所需方法时进一步加以澄清,但这在帮助系统中很难找到,因此我希望至少有一个地方可以参考,以备将来再次使用。
翻译自: https://bytes.com/topic/access/insights/926344-handling-optional-parameters-vba
vba 编译显示参数不可选