VBA的Selection.Find函数

      最近玩VBA,遇到一个不算大也不算小的问题。就是用EXCEL自己的函数Selection.Find来做检索,最开始是用宏录制发现这个函数的,但在具体应用到自己的代码中的时候,问题出现了:第一,如何指定自己想要查找的字符? 第二,如何取得找到字符的所在位置? 第三,如果未找到字符,如何做返回处理。具体代码如下:

Selection.Find(What:="ABCD", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
         :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
         False)
前二个疑问很好处理,只是到了第三个问题的时候,不知道怎么处理了。在网上也没有对此相关的帮助文章,最后我想到了一个解决方法,想写出来和大家共享,具体做法如下:
Dim ObjTmp As Object
Set ObjTmp = Selection.Find(What:=FTxt, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
         :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
         False)
If ObjTmp Is Nothing Then
       MsgBox "見つかりません"
else
         ObjTmp.Activate
         IRow = ActiveCell.row
         ICol = ActiveCell.Column
end if
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码使用 VBA 编写,作用是在 Word 文档中查找特定的字符串 "{$附表头}",然后将其所在的行复制多次,以便进行数据检测。 以下是每一行代码的详细解释: ``` Selection.HomeKey Unit:=wdStory '光标置于文件首 ``` 将光标移动到文档的开头。 ``` .Selection.Find.Text = "{$附表头}" '光标返回{$附表头}的位置 ``` 在文档中查找字符串 "{$附表头}",并将光标定位到第一个匹配项的位置。 ``` .Selection.Find.Forward = True '光标往前开始查找,True(向前),False(向后) ``` 设置查找方向为向前查找。 ``` .Selection.Find.Wrap = wdFindContinue ``` 设置查找选项为 wdFindContinue,表示在查找时不跨越文档边界。 ``` .Selection.Find.MatchByte = True ``` 设置查找选项为 MatchByte = True,表示匹配单字节字符。 ``` .Selection.Find.Execute ``` 执行查找操作。 ``` .Selection.MoveLeft Unit:=wdCharacter, Count:=1 ``` 将光标向左移动一个字符,以便选择整行。 ``` .Selection.MoveDown Unit:=wdLine, Count:=20, Extend:=wdExtend ``` 向下移动 20 行,并选中所有行。 ``` .Selection.Copy ``` 复制所选内容。 ``` .Selection.MoveDown Unit:=wdLine, Count:=1 ``` 将光标向下移动一行。 ``` For i = 2 To 检测数量 .Selection.PasteAndFormat (wdFormatOriginalFormatting) .Selection.TypeParagraph Next i ``` 将复制的内容粘贴多次,并在每次粘贴后插入一个空行,以便进行数据检测。 ``` .Selection.HomeKey Unit:=wdStory '光标置于文件首 ``` 将光标移动到文档的开头。 ``` .Selection.Find.ClearFormatting .Selection.Find.Replacement.ClearFormatting ``` 清除查找和替换操作中的格式设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值