like运算符用法

like运算符是用来比较两个字符串,返回值是逻辑值true或false,其语法结构是result = string like pattern;

再了解一下几个符号所代表的意义

?表示任何单一字符
*表示零个或多个字符
#表示任何一个数字(0-9)
[charlist]charlist.中的任何单一字符
[!charlist]不在charlist中的任何单一字符

下面再举个简单例子,更便于理解。

Sub like运算符的用法()
Dim re
re = 123 Like "???"       '表示123是否能匹配三个字符
re = 123 Like "*2*"       '*表示多个字符,故匹配结果true
re = 123 Like "###"       '因为123是数字,所以匹配三个#也成功
re = w3 Like "?#"         '?表示一个字符,可以是数字也可以是非数字,匹配也成功
re = w3 Like "w[0-5]"    '[0-5]表示仅选取0-5中的一个数字,匹配也成功
re = w3 Like "w[0-589]"  '[0-589]表示匹配0-5、8、9之间任意一个数字,匹配成功
re = w3 Like "w[0-589a-zA-Z]"    '表示匹配0-5、8、9和所有单个大小写字母中的一个
re = w3 Like "w[!0-5]"      '表示匹配除0-5之外的数字,3在0-5之间,所以匹配结果为false
End Sub

来个实例,更易上手,先上图:

like运算统计考试人数.png

代码如下:

Sub like统计考试人数()
Dim tj As Range, rng As Range, n%
For Each tj In [g2:g4]                     '第一个循环,用for...each来将tj在g2:g4之中循环
For Each rng In [b2:b19]                '第二个循环,同样将rng在b2:b19之中循环
if rng.Value Like tj.Value Then n = n + 1    '如果rng的值和tj的表达式符合,则用n=n+1来开始累加一共有多少个符合条件的个数
Next rng                                       '继续内循环rng,即从b2:b19之间循环满足tj第一个条件的个数
tj(1, 2) = n                                   'tj(1,2)是偏移一行两列,效果等同于tj.offset(1,2),即是h2单元格,将n的计算结果写入
n = 0                                          '要把N定义为0,否则h3单元格会在h2单元格的值的基础上进累加
Next tj                                        '继续第一个条件(外)循环,如第一个表达式循环完了之后第二个表达式也继续从b2:b19之间循环,一直到tj的g2:g4循环完毕
End Sub

https://rijifang.com
打赏
转载请注明出处;
本文地址:https://rijifang.com/index.php/post/15190.html
相关热文

发表评论: