【Word VBA】反向继续查找下一处。

继续查找下一处,使用反向向回找。要VBA代码,别告诉我用Shift+F5!。已经解决了:【WordVBA】查找_向上查找Sub查找_向上查找()''查找_向上查找宏'Se... 继续查找下一处,使用反向向回找。要VBA代码,别告诉我用 Shift+F5!。
已经解决了:
【Word VBA】查找_向上查找
Sub 查找_向上查找()
'
' 查找_向上查找 宏
'
Selection.HomeKey Unit:=wdLine '先到行首,因上次查找后,光标定位在查找结果之后
Selection.Find.Forward = False 'False=向上查找,(True=向下查找)

Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1 '左键取消选择区,便于下一次向上查找

End Sub
展开
 我来答
chinawflqw
推荐于2016-06-03 · TA获得超过170个赞
知道小有建树答主
回答量:477
采纳率:50%
帮助的人:360万
展开全部

vba中用find方法。

range("a1:a10").find("lll",lookin:=xlvalues,lookat:=xlwhole,searchdirection:=2)

其中,lookin是指查找的信息类型;lookat是指查找的匹配度,xlWhole为精确查找,xlPart为模糊查找;SearchDirection是指的查找方向,xlnext或1为向下查找,xlprevious或2为向上查找。

上面那句就是在单元格A1:A10中反向精确查找lll的单元格,比如这中间有A3、A5和A8的值是lll,那首先找到的是A8单元格,FindPrevious向前查找,上一个是A5单元格,再上一个是A3单元格。

例表见附件,完整代码如下:

Sub 反向查找()

    Set Rng = Range("a1:a10").Find("lll", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=2)

    If Not Rng Is Nothing Then      '判断有找到目标时

        firstAddress = Rng.Address  '先找到的单元格地址先记录下来

        Do

            MsgBox "找到了lll在" & Rng.Address & "!"   '显示找到的lll的地址

            Set Rng = Range("a1:a10").FindPrevious(Rng)                     '向前查找下一个lll

        Loop While Not Rng Is Nothing And Rng.Address <> firstAddress  '当还能找到lll并且再找到的单元格地址不是初始单元格时

    End If

End Sub

Sub 正向查找()

    Set Rng = Range("a1:a10").Find("lll", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=1)

    If Not Rng Is Nothing Then      '判断有找到目标时

        firstAddress = Rng.Address  '先找到的单元格地址先记录下来

        Do

            MsgBox "找到了lll在" & Rng.Address & "!"   '显示找到的lll的地址

            Set Rng = Range("a1:a10").FindNext(Rng)                     '向后查找下一个lll

        Loop While Not Rng Is Nothing And Rng.Address <> firstAddress  '当还能找到lll并且再找到的单元格地址不是初始单元格时

    End If

End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式