ms-access - 如何在VBA中创建IsMissingOrEmptyString来处理可选参数?

标签 ms-access 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*   

最佳答案

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/

相关文章:

excel - Excel VBA中的嵌套错误处理

excel - 条件格式,搜索公式

ms-access - 从 Access 2007 发出 SOAP 请求

performance - 尽管结果数量减少了 25%,但对数据进行分组会减慢查询速度

excel - 创建表作为选择位置 - 使用当前数据库编译错误

Excel IF "text"然后是数字,如果另一个 "text"然后是另一个数字

php - PHP 中的目标搜索功能

html - 使用 Excel 从 Lotus Notes 发送电子邮件并具有附件和 HTML 正文

mysql - 从一个表中获取总计,引用另一个表中的 ID

vba - 如何检查VBA中的长度是否小于2