Innehållsförteckning
Word VBA Find
Detta exempel är ett enkelt ordmakro hitta texten "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 = Falskt slut med Selection.Find.Execute End Sub
Hitta och ersätta
Detta enkla makro söker efter ordet "deras" och ersätter det med "där":
Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deras" .Replacement.Text = "there" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = Falskt slut med Selection.Find.Execute Ersätt: = wdReplaceAll End Sub
Hitta och ersätt endast i urval
Detta VBA -makro hittar och ersätter text i ett urval. Det kommer också att kursivera den ersatta texten.
Sub ReplaceInSelection () 'ersätter text JUST i valet. i adittion gör den ersatt text kursiv Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "deras" With .Replacement .Font.Italic = True .Text = "there" End With .Forward = True .Wrap = wdFindStop 'detta hindrar Word från att fortsätta till slutet av doc .Format = True' vi vill också ersätta formatering av text .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Med Selection.Find.Execute Ersätt: = wdReplaceAll End Sub
Denna kodrad hindrar VBA från att fortsätta till slutet av Word -dokumentet:
.Wrap = wdFindStop 'detta hindrar Word från att fortsätta till slutet av doc
Denna kodrad anger att texten också ska ersättas:
.Format = True 'vi vill också ersätta formatering av text
Hitta och ersätt endast inom räckvidd
Istället för att ersätta text i hela dokumentet, eller i ett urval, kan vi berätta för VBA att hitta och ersätta endast inom intervallet. I det här exemplet definierade vi intervallet som det första stycket:
Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range
Sub ReplaceInRange () 'ersätter text JUST i intervallet [i detta exempel bara i första stycket] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Hitta .Text = "deras" .Replacement.Text = "där" .Forward = True .Wrap = wdFindStop 'detta förhindra att Word fortsätter till slutet av doc .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = Falskt slut med oRange.Find.Execute Ersätt: = wdReplaceAll End Sub