如何在vb.net中搜索word文档时检测范围对象的结尾

时间:2015-03-18 05:09:00

标签: vb.net ms-word office-interop

我以编程方式在word文档中定义范围对象。现在我正在尝试搜索此范围内的特定单词,但我的搜索超出了范围对象。如何在范围内限制我的搜索。 下面是代码段

WordApp.Selection.Find.Execute(<Text to find>) ' To set start of range
StartRng = WordApp.Selection.Start
    With WordApp.Selection.Find
        .Forward = True
        .MatchCase = False
        .MatchWholeWord = True
        .Wrap = Word.WdFindWrap.wdFindContinue
    End With

    WordApp.Selection.Find.Execute(<Text to find>) ' To set end of range
    EndRng = WordApp.Selection.End

    WordRng = WordDoc.Range(Start:=StartRng, [End]:=EndRng)
    WordRng.Select()

    With WordRng.Find
        .Text = "CR"
        .Forward = True
        .MatchCase = True
        .MatchWholeWord = False
    End With
    WordRng.Find.Execute()

    Do While WordRng.Find.Found = True
        Console.WriteLine(WordRng.Text)
        WordRng.Find.Execute()
        CRCount += 1
    Loop

这个Do while循环查找文本&#34; CR&#34;超出所选范围。

1 个答案:

答案 0 :(得分:0)

以下代码行导致您遇到的问题:

 .Wrap = Word.WdFindWrap.wdFindContinue

Find类的Wrap属性返回或设置如果搜索从文档开头以外的点开始并且到达文档末尾会发生什么(反之亦然,如果Forward设置为False)或者如果在指定的选择或范围内找不到搜索文本。