2013-07-21 155 views
1

我正在搜索文檔中的特定文本,刪除文本,然後添加分節符。我只能得到這個代碼爲一個實例工作。當我嘗試一個while while循環時,檢查每一行,Word崩潰。Word 2010 VBA:搜索文本並用分節符替換

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

你也應該顯示你的循環代碼。

但是,設置

.Wrap = wdFindStop 

將防止查找運行的代碼無止境,這可能是爲什麼它崩潰。使用wdFindContinue將導致搜索從文檔的開頭一遍又一遍地繼續。

但是,您還應該檢查Find.Execute返回的結果。這是一個Boolean值(True或False),指示Find是否成功。如果不成功,您應該使用Exit DoExit For來擺脫循環。