1. FIND 方法进行查找
应用于 Range 对象的 Find 方法在区域中查找特定信息,返回 Range 对象。
FIND 语法:
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
其中,expression 是必需的,该表达式返回一个 Range 对象。
9 个参数具体含义:
- What:必需,要搜索的数据,可为字符串或任意数据类型。
- After:可选,表示搜索过程将从其之后开始进行的单元格,必须是区域中的单个单元格。查找时从该单元格之后开始,直到绕回到指定单元格时才对其搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。本例中将 After 参数设置为 A 列的最后一个单元格,所以查找时从 A1 单元格开始搜索。
- LookIn:可选,信息类型。
- LookAt:可选,可为 XlLookAt 常量的 xlWhole 或 xlPart 之一。
- SearchOrder:可选,可为 XlSearchOrder 常量的 xlByRows 或 xlByColumns 之一。
- SearchDirection:可选,搜索的方向,可为 XlSearchDirection 常量的 xlNext 或 xlPrevious 之一。
- MatchCase:可选,若为 True,则进行区分大小写的查找。默认值为 False。
- MatchByte:可选,仅在选择或安装了双字节语言支持时使用。若为 True,则双字节字符仅匹配双字节字符;若为 False,则双字节字符可匹配其等价的单字节字符。
- SearchFormat:可选,搜索的格式。
总之,只有 What 参数为必需参数,其余参数均为可选参数。
案例代码:

2. 使用 Like 运算符来匹配
语法:
result = string Like pattern
- string:必需,一个字符串。
- pattern:必需,另一个字符串。
如果 string 与 pattern 匹配,则 result 为 True;如果不匹配,则 result 为 False。如果 string 或 pattern 中有一个为 Null,则 result 为 Null。
通过先理解等于符号再来理解 Like 运算符,比如:
If "张三" = "张三" Then 用于判断一个字符串是否与另一个字符串相同。
当需要模糊查找时,可以将 = 换成 Like 运算符来进行判断,例如:
If "张三吃饭" Like "*张三*" Then
显然,目前通过等于符号无法完成模糊查找,用 Like 运算符加上通配符即可实现。
测试代码:

3. Range 对象的 Replace 方法替换字符串
Range 对象的 Replace 方法。
语法:
expression.Replace(What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte, SearchFormat, ReplaceFormat)
- expression:必需,返回一个 Range 对象。
- What:必需,要搜索的字符串。
- Replacement:必需,替换的字符串。
- LookAt:可选,为常量:xlWhole(完全匹配搜索文本)或 xlPart(匹配搜索文本的任一部分,为默认值)。
- SearchOrder:可选,指定搜索顺序,为常量:xlByRows 或 xlByColumns,分别表示按行搜索和按列搜索。
- MatchCase:可选,为 True,则搜索区分大小写。
- MatchByte:可选,为 True,则双字节字符仅匹配双字节字符;为 False,则双字节字符匹配其单字节等效字符。
- SearchFormat:可选,方法的搜索格式。
- ReplaceFormat:可选,方法的替换格式。
需要注意:每次使用此方法时,都会保存 LookAt、SearchOrder、MatchCase 和 MatchByte 的设置。如果在下次调用此方法时不指定这些参数的值,则使用保存的值。设置这些参数会更改“查找和替换”对话框中的设置,更改“查找和替换”对话框中的设置会更改省略参数时使用的已保存值。为避免问题,建议在每次使用此方法时显式设置这些参数。
4. VBA 内置 Replace 函数(注意区分 Range 对象的 Replace 方法)
这两个方法都用于查找和替换。
VBA Replace 函数的语法及参数:
Replace(Expression, Find, Replace, [Start], [Count], [Compare])
必须参数为前三个:原字符串、被搜索的子字符串、用于替换的子字符串,均为字符串类型,函数返回一个字符串。
其余参数为可选参数:
- Start:Expression 中开始搜索子字符串的位置。如果省略,默认值为 1。在与 Count 关联时必须使用。
- Count:执行子字符串替换的次数。如果省略,默认值为 -1,表示进行所有可能的替换。在与 Start 关联时必须使用。
- Compare:指示在计算子字符串时使用的比较类型的数值。如果省略,默认值为 0,表示进行二进制比较。
测试代码:

Range 对象的 Replace 方法支持通配符,VBA 的 Replace 内置函数不支持通配符。

