Like 是 VBA 里用来模式匹配(pattern matching)的运算符,用来判断某个字符串是不是符合一套“通配符规则”。
If "Hello" Like "H*" Then
MsgBox "匹配成功!"
End IfLike 返回 True / False。
⭐ 常用通配符总表(一定要收藏)
| 通配符 | 作用 | 示例 |
|---|---|---|
? | 匹配任意单个字符 | “A?” 可匹配 “AB”、”A1” |
* | 匹配任意长度字符(含空) | “A*” 匹配 “A”、”Apple” |
# | 匹配任意数字(0–9) | “##” 匹配 “03”、”58″ |
[abc] | 匹配集合里任意一个字符 | “h[ae]llo” 匹配 hello / hallo |
[a-z] | 匹配范围字符 | “[A-Z]??” 匹配 “Cat” 这样的 3 字符串(首字母大写) |
! | 取反(不匹配后面字符) | “[!0-9]*” 不能以数字开头 |
[] 空内容 | 字面量 [] | 要匹配 [ 这个符号需要用 “[[]” |
🔥 经典例子(直接上手用)
1️⃣ 检查是否邮箱格式(超级常用)
If mail Like "*@*.*" Then
MsgBox "大概是个邮箱"
End If
当然,Like 不是专业正则,不适合做特别严谨的验证。
2️⃣ 判断是否数字(纯数字字符串)
If text Like "#*" Then
MsgBox "是数字串"
End If
但注意这种方式只判断第一位是否数字,如需全数字:
If text Like String(Len(text), "#") Then
MsgBox "全是数字"
End If
3️⃣ 判断是否以特定字符开头
If name Like "A*" Then
MsgBox "名字以 A 开头"
End If
4️⃣ 判断长度为 3 的大写字母串
If code Like "[A-Z][A-Z][A-Z]" Then
MsgBox "是三位大写字母"
End If
Like vs 通配符
别搞混:
Excel 函数里的通配符:* 、?
VBA Like 的通配符:* ? # [abc] [a-z] [!...]
⚠ 它们不是完全一套语法!
例如:
| 目的 | Excel公式 | VBA Like |
|---|---|---|
| 开头是 A | "A*" | "A*" |
| 第 2 字符必须是数字 | ❌ 不支持 | "A#*" |
| 3 位全大写字母 | ❌ 不支持 | "[A-Z][A-Z][A-Z]" |
🍭 小技巧:Like 配合 Select Case
比 if 写起来优雅很多!
Select Case text
Case "A*"
MsgBox "A 开头"
Case "*B"
MsgBox "B 结尾"
Case "[0-9]*"
MsgBox "以数字开头"
Case Else
MsgBox "不匹配任何规则"
End Select








