Word VBA -makroer - Find, Find og udskift

Word VBA Find

Dette eksempel er en simpel ordmakro, find teksten “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 = Falsk .MatchAllWordForms = Falsk ende med Selection.Find.Execute End Sub

Find og udskift

Denne simple makro vil søge efter ordet "deres" og erstatte det med "der":

Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deres" .Replacement.Text = "der" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = Falsk .MatchWildcards = Falsk .MatchSoundsLike = Falsk .MatchAllWordForms = Falsk ende med Selection.Find.Execute Erstat: = wdReplaceAll End Sub

Find og erstat kun i markering

Denne VBA -makro finder og erstatter tekst i et udvalg. Det vil også kursivere den udskiftede tekst.

Sub ReplaceInSelection () 'erstatter tekst JUST i markeringen. i adittion gør den udskiftet tekst kursiv Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deres" Med .Replacement .Font.Italic = True .Text = "der" Ender med .Forward = True .Wrap = wdFindStop 'dette forhindrer Word i at fortsætte til slutningen af ​​doc .Format = True' vi vil også erstatte formatering af tekst .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Med Selection.Find.Execute Erstat: = wdReplaceAll End Sub

Denne kodelinje forhindrer VBA i at fortsætte til slutningen af ​​Word -dokumentet:

.Wrap = wdFindStop 'dette forhindrer Word i at fortsætte til slutningen af ​​doc

Denne kodelinje angiver også at erstatte tekstens formatering:

.Format = True 'vi vil også erstatte formatering af tekst

Find og udskift kun inden for rækkevidde

I stedet for at erstatte tekst i hele dokumentet eller i et udvalg, kan vi fortælle VBA at finde og erstatte kun inden for rækkevidde. I dette eksempel definerede vi området som det første afsnit:

Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range
Sub ReplaceInRange () 'erstatter tekst JUST i området [i dette eksempel kun i det første afsnit] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Find .Text = "deres" .Replacement.Text = "der" .Forward = True .Wrap = wdFindStop 'forhindrer Word i at fortsætte til slutningen af ​​doc .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = Falsk .MatchAllWordForms = Falsk ende med oRange.Find.Execute Erstat: = wdReplaceAll End Sub 
wave wave wave wave wave