如果可选参数是变体,则下面的 IsMissing 有效,如果它是字符串,则 IsMissing 无效。如何创建 IsMissingOrEmptyString 来应对两者?
Public Sub test(Optional varArg As Variant)
m_Flag = false
If IsMissing(varArg) Then
m_Flag = true
End If
End Sub
Public Sub test(Optional varArg As String)
m_Flag = false
If varArg = "" Then
m_Flag = true
End If
End Sub*
最佳答案
IsMissing 仅适用于 Variant 数据类型,因为其他数据类型在声明时会自动初始化(分配默认值)。
对于字符串变量,默认值为 vbNullString,最快的测试方法是使用 lenB 函数...
Public Sub test(Optional varArg as String)
m_Flag = (LenB(varArg) = 0)
End Sub
如果 varArg = ""
,上面的代码会将 m_Flag 设置为 true。
请注意,将 varArg 声明为字符串变量意味着无法区分向过程传递空字符串的情况和过程调用中省略参数的情况。
关于ms-access - 如何在VBA中创建IsMissingOrEmptyString来处理可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264931/