Excel Range.Find方法和精确搜索文本匹配的问题

时间:2014-03-20 12:25:00

标签: excel vba excel-vba find

我正在尝试使用excel中的VBA代码搜索给定word文档中的一些文本。

Excel列中的值列表

在excel列中搜索术语

  • 1.1.1
  • 1.1.1.1
  • 1.1.1.2
  • 1.1.1.3
  • 1.1.1.4

Word文件中可用的值为:

  • 1.1.1.1一些描述
  • 1.1.1.2一些描述
  • 1.1.1.3一些描述

所以对于搜索术语: 1.1.1和1.1.1.4它应该说没有找到,对于其他三个值,它会说找到

代码适用于除1.1.1之外的所有其他值。即使它在单词文档中不存在,它也会找到。

正在发生的是,在word文档中找到“1.1.1.3”中的模式(1.1.1)。 (这是真的但不是我想做的事情)

但我想要做的是准确搜索1.1.1而不是某些部分术语

关于如何在VBA中有效完成任何建议?

我正在考虑的是在搜索词之后检查空白区域以解决此问题,但我认为这不会足够有效。

代码

Set Wksht = ThisWorkbook.Sheets("Sheet1")
Wksht.Select
Set rRng = Wksht.Range("A3", Range("A65536").End(xlUp))

For Each rCell In rRng

     For Each rngStory In oWordDoc.StoryRanges

         With rngStory.Find
            .Text = rCell
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindStop
            .Format = False
            .MatchCase = False
            .MatchWholeWord = True
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False '
        End With

        rngStory.Find.Execute
        While rngStory.Find.Found
            'MsgBox (rngStory.Find.Text)
            rCell(1, 2).Value = "completed"
            rngStory.Find.Execute
        Wend

    Next


Next

使用搜索字词和尾随空格进行搜索的解决方案代码

searchText = " " & rCell & " "
For Each rngStory In oWordDoc.StoryRanges
             With rngStory.Find
                .Text = searchText
                .
                .
                .....

0 个答案:

没有答案