Word 2010 VBA:搜索文本并替换分节符

时间:2013-07-21 16:42:47

标签: vba ms-word

我正在搜索文档中的特定文本,删除文本然后添加分节符。我只能让这个代码适用于一个实例。当我尝试do while循环,检查每一行时,Word崩溃了。

With Selection.Find
        .Text = "INSTRUCTOROVERVIEW"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute
With Selection
    If .Find.Forward = True Then
        .Collapse Direction:=wdCollapseStart
    Else
        .Collapse Direction:=wdCollapseEnd
    End If
    .Find.Execute Replace:=wdReplaceOne
    If .Find.Forward = True Then
        .Collapse Direction:=wdCollapseEnd
    Else
        .Collapse Direction:=wdCollapseStart
    End If
    .Find.Execute
End With
Selection.InsertBreak Type:=wdSectionBreakNextPage

1 个答案:

答案 0 :(得分:1)

您也应该显示循环代码。

但是,设置

.Wrap = wdFindStop

将阻止Find无限期地运行代码,这可能就是它崩溃的原因。使用wdFindContinue将导致搜索从文档的开头一遍又一遍地继续。

但是,您还应该检查Find.Execute返回的结果。它是一个Boolean值(True或False),表示Find是否成功。如果不成功,您应该使用Exit DoExit For来摆脱循环。