use*_*291 2 excel ms-access vba excel-vba
如果可选参数是下面的变体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*
Run Code Online (Sandbox Code Playgroud)
IsMissing仅适用于Variant数据类型,因为其他数据类型在声明时会自动初始化(分配默认值).
对于字符串变量,默认值为vbNullString,测试此方法的最快方法是使用lenB函数...
Public Sub test(Optional varArg as String)
m_Flag = (LenB(varArg) = 0)
End Sub
Run Code Online (Sandbox Code Playgroud)
如果,上面将m_Flag设置为true varArg = "".
请注意,将varArg声明为字符串变量意味着无法区分将空字符串传递给过程的情况,以及在过程调用中省略参数的情况.
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |