你还在为复杂的模式匹配查找而烦恼? Like 运算符可以其实可以轻松胜任_运算符

Hi,大家好,本专栏将会从零开始和大家用图文的方式,让你从零基础学会VBA!有兴趣的小伙伴可以持续关注我,或者在专栏中进行查看自我学习,愿与君携手前行!

在上节已经讲述了单元格的查找使用Find 方法和FindNext 方法,也许你已经初步具备识别他们了。今天要和大家分享的一个知识点是更为高阶的查找符合指定条件的单元格,达到这个目的方法有很多种,现在主要介绍使用用 Like 运算符可以进行更为复杂的模式匹配查找,下期我们会介绍其他的方式。

Issue:假如我们需要在如下所示的数据区域查找包含字符“a”的,此时如果需要使用使用 Like 运算符可以进行更为复杂的模式匹配查找,代码应该如何完成呢?

你还在为复杂的模式匹配查找而烦恼? Like 运算符可以其实可以轻松胜任_字符串_02


其实完成这个功能,所使用的代码是非常简单明了,rng.Text Like "*a*",具体实际如下面的代码所示。

#001  Sub RngLike()
#002 Dim rng As Range
#003 Dim a As Integer
#004 a = 1
#005 With Sheet2
#006 .Range("A:A").ClearContents
#007 For Each rng In .Range("B1:E1000")
#008 If rng.Text Like "*a*" Then
#009 .Range("A" & a) = rng.Text
#010 a = a + 1
#011 End If
#012 Next
#013 End With
#014 End Sub


代码解析:此子过程过程使用 For Each...Next 语句和 Like 运算符在单元格区域 B1:E10000 中搜 索含有“a”字符的单元格,找到匹配单元格以后将单元格的值写入到 A 列中。

第 6 行代码使用 ClearContents 方法清除 A 列区域的数据。

第 7 行代码使用 For Each...Next 语句在单元格区域 B1:E10000 中循环。

第 8 行代码使用 Like 运算符在单元格区域 B1:E10000 中搜索含有“a”字符的单元格。

第 9 行代码将找到的匹配单元格的值写入到 A 列中。

本节主要使用的知识点是,Like 运算符用来比较两个字符串,语法如下:

result = string Like pattern

参数 string 是必需的,字符串表达式。参数 pattern 是必需的,字符串表达式。

如果 string 与 pattern 匹配,则 result 为 True;如果不匹配,则 result 为 False。但是 如果 string 或 pattern 中有一个为 Null,则 result 为 Null。参数 pattern 可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。

PS:附上pattern 中的匹配字符串

你还在为复杂的模式匹配查找而烦恼? Like 运算符可以其实可以轻松胜任_字符串_03

 以上就是今天要与大家分享的技巧,希望对大家有所帮助。


好啦!快乐的时间总是非常短暂的,又到了和大家说再见的时候,如果大家感觉本文如果对你有所帮助的话,请帮忙转发点赞,谢谢您能观看到现在,我们下期再见!

我是Excel教案,关注我持续分享更多的Excel技巧!

如果有不明白的或者不懂的可以在下方留言,我们会一一解答的。