Makri Word VBA - Poiščite, poiščite in zamenjajte

Word VBA Find

Ta primer je preprost besedni makro, poiščite besedilo "a":

Sub SimpleFind () Selection.Find.ClearFormatting With Selection.Find .Text = "a" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End z izbiro. Find.Execute End Sub

Poišči in zamenjaj

Ta preprost makro bo iskal besedo "njihov" in jo nadomestil z "tam":

Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "njihov" .Replacement.Text = "tam". Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = false.

Poišči in zamenjaj samo v izboru

Ta makro VBA bo poiskal in zamenjal besedilo v izboru. Prav tako bo kurzivno zamenjalo besedilo.

Sub ReplaceInSelection () 'nadomesti besedilo SAMO v izboru. poleg tega naredi nadomestno besedilo poševno Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "njihov" Z .Replacement .Font.Italic = True .Text = "tam" Končaj z .Forward = True .Wrap = wdFindStop 'to preprečuje Wordu nadaljevanje do konca dokumenta. Format = True' želimo zamenjati tudi oblikovanje besedila. MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False. Z Selection.Find.Execute Replace: = wdReplaceAll End Sub

Ta vrstica kode preprečuje nadaljevanje VBA do konca Wordovega dokumenta:

.Wrap = wdFindStop 'to preprečuje nadaljevanje Worda do konca dokumenta

Ta vrstica kode označuje tudi zamenjavo oblikovanja besedila:

.Format = True 'želimo zamenjati tudi oblikovanje besedila

Poišči in zamenjaj samo v dosegu

Namesto da bi zamenjali besedilo v celotnem dokumentu ali v izbranem, lahko rečemo VBA, naj poišče in zamenja samo v obsegu. V tem primeru smo obseg definirali kot prvi odstavek:

Dim oRange As Range Set oRange = ActiveDocument. Odstavki (1).
Sub ReplaceInRange () 'nadomesti besedilo SAMO v obsegu [v tem primeru samo v prvem odstavku] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting with oRange.Find.Replacement.ClearFormatting. Poiščite .Text = "njihov" .Replacement.Text = "tam" .Forward = True. Wrap = wdFindStop 'to prepreči, da bi Word nadaljeval do konca dokumenta. Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End z oRange.Find.Execute Replace: = wdReplaceAll End Sub 
wave wave wave wave wave