有兴趣开发跨
多个平台
扩展 Office 体验的解决方案吗? 查看新的
Office 外接程序模型
。 与VSTO外接程序和解决方案相比,Office外接程序占用的空间较小,您可以使用几乎任何Web编程技术(例如HTML5,JavaScript,CSS3和XML)来构建它们。
表达式
.
Find
(
What
,
After
,
LookIn
,
LookAt
,
SearchOrder
,
SearchDirection
,
MatchCase
,
MatchByte
,
SearchFormat
)
expression
一个表示
Range
对象的变量。
必需/可选
Variant
要在其后开始搜索的单元格。 从用户界面搜索时,这对应于活动单元格的位置。
请注意,
After
必须是区域内的单个单元格。 请注意,搜索在此单元格之后开始;在方法回绕到此单元格之前,不会搜索指定的单元格。
如果未指定此参数,搜索将在区域左上角的单元格后面开始。
LookIn
Variant
可以是下列
XlFindLookIn
常量之一:
xlFormulas
、
xlValues
、
xlComments
或
xlCommentsThreaded
。
LookAt
Variant
可以是下列
XlLookAt
常量之一:
xlWhole
或
xlPart
。
SearchOrder
Variant
可以是以下
XlSearchOrder
常量之一:
xlByRows
或
xlByColumns
。
SearchDirection
Variant
可以是以下
XlSearchDirection
常量之一:
xlNext
或
xlPrevious
。
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。 也就是说,值 1234 和 99299 均包含2,并且单元格的值将变为 5。
Sub FindValue()
Dim c As Range
Dim firstAddress As String
With Worksheets(1).Range("A1:A500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If
End With
End Sub
本示例在第一个工作表的单元格区域 A1:A500 中查找包含子字符串 “abc” 的所有单元格,并将这些单元格的值替换为 “xyz”。
Sub FindString()
Dim c As Range
Dim firstAddress As String
With Worksheets(1).Range("A1:A500")
Set c = .Find("abc", LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
c.Value = Replace(c.Value, "abc", "xyz")
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If
End With
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。