如何在 vba 中使用通配符(附示例)


您可以在 VBA 中使用Like运算符和以下内置通配符来搜索字符串中的特定模式:

  • * : 匹配任意数量的字符
  • : 匹配单个字符
  • # : 对应单个数字
  • [] :匹配范围内的任意字符

以下示例展示了如何在实践中使用这些通配符。

示例 1:使用 *通配符搜索子字符串

假设 A 列中有以下食物列表:

我们可以创建以下宏来搜索 A 列中每个字符串中的“热门”子字符串,并将结果显示在 B 列中:

 Sub FindString()

    Dim i As Integer
    
    For i = 2 To 10
        If Range(" A " & i) Like " *hot* " Then
            Range(" B " & i) = " Contains hot "
        Else
            Range(" B " & i) = " Does Not Contain hot "
        End If
    Next i
    
End Sub

当我们运行这个宏时,我们会收到以下输出:

示例 2:使用通配符 * 搜索以模式结尾的字符串

假设 A 列中有以下篮球队名称列表:

我们可以创建以下宏来搜索 A 列中以“ets”结尾的字符串,并将结果显示在 B 列中:

 Sub FindEndingString()

    Dim i As Integer
    
    For i = 2 To 10
        If Range(" A " & i) Like " *ets " Then
            Range(" B " & i) = " Ends in ets "
        Else
            Range(" B " & i) = " Does Not End in ets "
        End If
    Next i
    
End Sub

当我们运行这个宏时,我们会收到以下输出:

示例 3:使用通配符 # 搜索号码

假设 A 列中有以下字符串列表:

我们可以创建以下宏来搜索 A 列中包含数字的字符串,并将结果显示在 B 列中:

 SubFindNumbers ()

    Dim i As Integer
    
    For i = 2 To 10
        If Range(" A " & i) Like " *#* " Then
            Range(" B " & i) = " Contains Numbers "
        Else
            Range(" B " & i) = " Does Not Contain Numbers "
        End If
    Next i
    
End Sub

当我们运行这个宏时,我们会收到以下输出:

示例4:使用通配符[]搜索多个字符

假设 A 列中有以下篮球队名称列表:

我们可以创建以下宏来在 A 列中搜索团队名称中包含 r、s 或 t 的字符串,并将结果显示在 B 列中:

 Sub FindSpecificLetters()

    Dim i As Integer
    
    For i = 2 To 10
        If Range(" A " & i) Like " *[rt]* " Then
            Range(" B " & i) = " Contains r, s, or t "
        Else
            Range(" B " & i) = " Does Not Contain r, s or t "
        End If
    Next i
    
End Sub

当我们运行这个宏时,我们会收到以下输出:

注意:您可以在此处找到完整的 VBA 通配符文档。

其他资源

以下教程说明如何使用 VBA 执行其他常见任务:

VBA:如何计算字符串中字符的出现次数
VBA:如何检查一个字符串是否包含另一个字符串
VBA:如何计算具有特定文本的单元格

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注