打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Range.Find 查询关键字并替换方法
userphoto

2022.06.19 四川

关注

在区域中查找特定信息。

语法

表达式.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

expression 一个表示 Range 对象的变量。

参数

名称必需/可选数据类型说明
What必需Variant要搜索的数据。 可为字符串或任意 Microsoft Excel 数据类型。
After可选Variant要在其后开始搜索的单元格。 从用户界面搜索时,这对应于活动单元格的位置。

请注意,After 必须是区域内的单个单元格。 请注意,搜索在此单元格之后开始;在方法回绕到此单元格之前,不会搜索指定的单元格。

如果未指定此参数,搜索将在区域左上角的单元格后面开始。
LookIn可选Variant可以是下列 XlFindLookIn 常量之一:xlFormulasxlValuesxlCommentsxlCommentsThreaded
LookAt可选Variant可以是下列 XlLookAt 常量之一:xlWholexlPart
SearchOrder可选Variant可以是以下 XlSearchOrder 常量之一:xlByRowsxlByColumns
SearchDirection可选Variant可以是以下 XlSearchDirection 常量之一: xlNextxlPrevious
MatchCase可选Variant如果为 True,则搜索区分大小写。 默认值为 False
MatchByte可选Variant仅在选择或安装了双字节语言支持时使用。 如果为 True,则双字节字符仅匹配双字节字符。 如果为 False,则双字节字符匹配其单字节等效字符。
SearchFormat可选Variant搜索格式。

返回值

一个 Range 对象,它代表在其中找到该信息的第一个单元格。

注解

如果未发现匹配项,此方法返回 NothingFind 方法不会影响所选内容或活动单元格。

每次使用此方法时,都会保存 LookInLookAtSearchOrderMatchByte 的设置。 如果在下次调用此方法时不指定这些参数的值,则使用保存的值。 设置这些参数会更改“查找”对话框中的设置,更改“查找”对话框中的设置会更改省略参数时使用的已保存值。 为避免出现问题,请在每次使用此方法时显式设置这些参数。

使用 FindNextFindPrevious 方法可重复搜索。

当搜索到达指定的搜索区域末尾时,它会绕到该区域开头位置。 若要在发生此绕回时停止搜索,请保存第一个找到的单元格的地址,然后针对此保存的地址测试每个连续找到的单元格地址。

若要查找与更复杂模式匹配的单元格,请将 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 
            Do 
                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
            Do
                c.Value = Replace(c.Value, "abc", "xyz")
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With

End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【新提醒】Excel 【资料】关于查找方法(Find方法)的应用
跟烟花入门VBA之71:单元格对象Range(十五)
Excel 关于用inputbox选择单元格区域的时候点击"取消"的奇怪问题
VBA-FIND方法 的运用
Excel VBA教程:Paste方法
不得不说的高效Boy:Find方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服