本帖最后由 weiyun 于 2010-8-19 21:58 编辑
Excel有帮助
Excel 开发人员参考
Range.Find 方法
在区域中查找特定信息。
语法
表达式.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 If
End With
Excel 开发人员参考
Range.FindNext 方法
继续由 Find 方法开始的搜索。查找匹配相同条件的下一个单元格,并返回表示该单元格的 Range 对象。该操作不影响选定内容和活动单元格。
语法
表达式.FindNext(After)
表达式 一个代表 Range 对象的变量。
参数
名称 必选/可选 数据类型 说明
After 可选 Variant 指定一个单元格,查找将从该单元格之后开始。此单元格对应于从用户界面搜索时的活动单元格位置。注意,After 必须是查找区域中的单个单元格。注意,搜索是从该单元格之后开始的;直到本方法环绕到此单元格时,才检测其内容。如果未指定本参数,查找将从区域的左上角单元格之后开始。
返回值
Range
说明
当查找到指定查找区域的末尾时,本方法将环绕至区域的开始继续搜索。发生环绕后,为停止查找,可保存第一次找到的单元格地址,然后测试下一个查找到的单元格地址是否与其相同。
示例
本示例在单元格区域 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 If
End With
Excel 开发人员参考
Range.FindPrevious 方法
继续由 Find 方法开始的搜索。查找匹配相同条件的上一个单元格,并返回代表该单元格的 Range 对象。该操作不影响选定内容和活动单元格。
语法
表达式.FindPrevious(After)
表达式 一个代表 Range 对象的变量。
参数
名称 必选/可选 数据类型 说明
After 可选 Variant 指定一个单元格,查找将从该单元格之前开始。此单元格对应于从用户界面搜索时的活动单元格的位置。请注意:After 必须是区域中的单个单元格。注意,搜索是从该单元格之前开始的;直到本方法环绕到此单元格时,才检测其内容。如果未指定本参数,查找将从区域的左上角单元格之前开始。
返回值
Range
说明
当查找到指定查找区域的起始位置时,本方法将环绕至区域的末尾继续搜索。发生绕回后,要停止搜索,可保存第一个找到的单元格地址,然后测试后面找到的每个单元格地址是否与其相同。
示例
本示例演示 FindPrevious 方法如何与 Find 方法和 FindNext 方法一起使用。运行本示例之前,请确保工作表 Sheet1 的 B 列中至少出现过两次“Phoenix”单词。Visual Basic for Applications
Sub FindTest()
Dim fc As Range
Set fc = Worksheets("Sheet1").Columns("B").Find(what:="Phoenix")
MsgBox "The first occurrence is in cell " & fc.Address
Set fc = Worksheets("Sheet1").Columns("B").FindNext(after:=fc)
MsgBox "The next occurrence is in cell " & fc.Address
Set fc = Worksheets("Sheet1").Columns("B").FindPrevious(after:=fc)
MsgBox "The previous occurrence is in cell " & fc.Address
End Sub
|