You should use a variant because the Find.Execute method is a bit buggy. Something like this, for example:
Код |
{ ... } var Rnge: OleVariant; { ... }
Rnge := Doc.Content; Rnge.Find.Execute('old', Wrap := wdFindContinue, ReplaceWith := 'new', Replace := wdReplaceAll); { ... }
|
--------------------------------------------------------------------------------
Код | { ... } { Create the OLE Object } WordApp := CreateOLEObject('Word.Application'); WordApp.Documents.Open(yourDocFile); WordApp.Selection.Find.ClearFormatting; WordApp.Selection.Find.Text := yourOldStr; WordApp.Selection.Find.Replacement.Text := yourNewStr; WordApp.Selection.Find.Forward := True; WordApp.Selection.Find.Wrap := 1; {wdFindContinue} WordApp.Selection.Find.Format := False; WordApp.Selection.Find.MatchCase := False; WordApp.Selection.Find.MatchWholeWord := False; WordApp.Selection.Find.MatchWildcards := True; WordApp.Selection.Find.MatchSoundsLike := False; WordApp.Selection.Find.MatchAllWordForms := False; WordApp.Selection.Find.Execute(Replace := 2); {wdReplaceAll} {Or as alternative: WordApp.Selection.Find.Execute(Replace := 1); for one replace} WordApp.ActiveDocument.SaveAs(yourNewDocFile); WordApp.Quit; WordApp := Unassigned; { ... }
|
|