下面介绍Like运算符的语法及一些应用示例,来说明Like运算符的功能。其中关于Like运算符语法的介绍,也可参见《VBA的运算符和表达式》一文。
Like运算符的语法
Like运算符用于判断给定的字符串是否与指定的模式相匹配,其语法为:
结果=<字符串> Like <模式>
说明:
(1) <字符串>为文本字符串或者对包含文本字符串的单元格的引用,是要与<模式>相比较的字符串,数据类型为String型。
<模式>数据类型为String型,字符串中可以使用一些特殊字符,其它的字符都能与它们相匹配,其如下表1所示。
<模式>的字符 与<字符串>匹配的文本
? 任意单个字符
* 零或者多个字符
# 任意单个数字(0-9)
[charlist] 字符列表中的任意单个字符
[!charlist] 不在字符列表中的任意单个字符
[ ] 空字符串(“ “)
(2) <结果>为Boolean型。如果字符串与指定的模式相匹配,则<结果>为True;否则<结果>为False。如果字符串或者模式Null,则结果为Null。
(3) Like运算符缺省的比较模式为二进制,因此区分大小写。可以用Option Compare语句来改变比较模式,如改变为文本比较模式,则不区分大小写。
(4) [Charlist]将模式中的一组字符与字符串中的一个字符进行匹配,可以包含任何一种字符,包括数字;在[Charlist]中使用连字号(-)产生一组字符来与字符串中的一个字符相匹配,如[A-D]与字符串相应位置的A、B、C或D匹配;在[Charlist]中可以产生多组字符,如[A-D H-J];各组字符必须是按照排列顺序出现的;在Charlist的开头或结尾使用连字号(-)与连字号自身相匹配,例如[-H-N]与连字号(-)或H到N之间的任何字符相匹配。
在Charlist中的一个字符或者一组字符前加上!号,表明与该字符或该组字符之外的所有字符匹配,如[!H-N]与字符H-N范围之外的所有字符匹配;而在[]外使用!号则只匹配其自身。要使用任何特殊字符作为匹配字符,只需将它放在[]中即可,例如[?]表明要与一个问号进行匹配。
为了与左括号 ([)、问号 (?)、数字符号 (#) 和星号 (*) 等特殊字符进行匹配,可以将它们用方括号括起来。不能在一个组内使用右括号 (]) 与自身匹配,但在组外可以作为个别字符使用。
以实例来认识Like运算符
下面的代码演示了Like运算符在不同情况下所得的结果。
Sub testLikePattern()
Dim bLike1 As Boolean, bLike2 As Boolean
Dim bLike3 As Boolean, bLike4 As Boolean
Dim bLike5 As Boolean, bLike6 As Boolean
Dim bLike7 As Boolean
bLike1 = "aBBBa" Like "a*a" ‘ 返回 True
bLike2 = "F" Like "[A-Z]" ‘ 返回 True
bLike3 = "F" Like "[!A-Z]" ‘ 返回 False
bLike4 = "a2a" Like "a#a" ‘ 返回 True
bLike5 = "aM5b" Like "a[L-P]#[!c-e]" ‘ 返回 True
bLike6 = "BAT123khg" Like "B?T*" ‘ 返回 True
bLike7 = "CAT123khg" Like "B?T*" ‘ 返回 False
MsgBox "Like运算符不同情形匹配结果:" & vbCrLf & " ""aBBBa"" Like ""a*a"" 结果为True." & _
vbCrLf & """F"" Like ""[A-Z]""结果为True." & _
vbCrLf & """F"" Like ""[!A-Z]""结果为False." & _
vbCrLf & """a2a"" Like ""a#a""结果为True." & _
vbCrLf & """aM5b"" Like ""a[L-P]#[!c-e]""结果为True." & _
vbCrLf & """BAT123khg"" Like ""B?T*""结果为True." & _
vbCrLf & """CAT123khg"" Like ""B?T*""结果为False."
End Sub
结果如图02所示。
此主题相关图片如下:
图02
示例文档见 演示Like运算符的基本情形.xls。
点击浏览该文件
[此贴子已经被作者于2006-10-25 14:03:30编辑过]