语法
表达式.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
表达式 一个代表 Range 对象的变量。
参数
名称 | 必选/可选 | 数据类型 | 描述 |
---|---|---|---|
What | 必选 | Variant | 要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。 |
After | 可选 | Variant | 表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格的位置。请注意:After 必须是区域中的单个单元格。要记住搜索是从该单元格之后开始的;直到此方法绕回到此单元格时,才对其进行搜索。如果不指定该参数,搜索将从区域的左上角的单元格之后开始。 |
LookIn | 可选 | Variant | 信息类型。 |
LookAt | 可选 | Variant | 可为以下 XlLookAt 常量之一:xlWhole 或 xlPart。 |
SearchOrder | 可选 | Variant | 可为以下 XlSearchOrder 常量之一:xlByRows 或 xlByColumns。 |
SearchDirection | 可选 | XlSearchDirection | 搜索的方向。 |
MatchCase | 可选 | Variant | 如果为 True,则搜索区分大小写。默认值为 False。 |
MatchByte | 可选 | Variant | 只在已经选择或安装了双字节语言支持时适用。如果为 True,则双字节字符只与双字节字符匹配。如果为 False,则双字节字符可与其对等的单字节字符匹配。 |
SearchFormat | 可选 | Variant | 搜索的格式。 |
返回值
一个 Range 对象,它代表第一个在其中找到该信息的单元格。说明
如果未发现匹配项,则返回 Nothing。Find 方法不影响选定区域或当前活动的单元格。
每次使用此方法后,参数 LookIn、LookAt、SearchOrder 和 MatchByte 的设置都将被保存。如果下次调用此方法时不指定这些参数的值,就使用保存的值。设置这些参数将更改“查找”对话框中的设置,如果省略这些参数,更改“查找”对话框中的设置将更改使用的保存值。要避免出现这一问题,每次使用此方法时请明确设置这些参数。
使用 FindNext 和 FindPrevious 方法可重复搜索。
当搜索到指定查找区域的末尾时,此方法将绕回到区域的开始位置继续搜索。发生绕回后,要停止搜索,可保存第一个找到的单元格地址,然后测试后面找到的每个单元格地址是否与其相同。
若要对单元格进行模式更为复杂的搜索,请结合使用 For Each...Next
语句和 Like 运算符。例如,下列代码在单元格区域 A1:C5 中搜索字体名称以“Cour”开始的单元格。当 Microsoft Excel 找到匹配单元格以后,就将其字体改为 Times New Roman。
For Each c In [A1:C5] If c.Font.Name Like "Cour*" Then c.Font.Name = "Times New Roman" End If Next
示例
本示例在第一个工作表的单元格区域 A1:A500 中查找包含值 2 的所有单元格,并将这些单元格的值更改为 5。
Visual Basic for Applications |
---|
With Worksheets(1).Range("a1:a500") Set c = .Find(2, lookin:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do c.Value = 5 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End IfEnd With |