Word VBA makrod - otsige, otsige ja asendage

Word VBA leidmine

See näide on lihtne sõna makro, leidke tekst "a":

Alam SimpleFind () Selection.Find.ClearFormatting With Selection.Find .Text = "a" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = Vale .MatchAllWordForms = Vale lõpp valikuga.Find.Execute End Sub

Leidke ja asendage

See lihtne makro otsib sõna "nende" ja asendab selle sõnaga "seal":

Alam SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "their" .Replacement.Text = "there" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = Vale lõpp valikuga.Find.Execute Replace: = wdReplaceAll End Sub

Otsige ja asendage ainult valikus

See VBA makro otsib ja asendab valitud teksti. See kaldab ka asendatud teksti kaldkirjasse.

Sub ReplaceInSelection () 'asendab teksti JUST valimisel. lisades muudab see asendatud teksti kursiivseks Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "their" With .Replacement .Font.Italic = True .Text = "there" End With .Forward = True .Wrap = wdFindStop 'see takistab Wordi jätkamist dokumendi lõpuni .Format = True' tahame asendada ka teksti vormingu .MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End Koos valikuga Selection.Find.Execute Replace: = wdReplaceAll End Sub

See koodirida takistab VBA -l Wordi dokumendi lõpuni jätkamist:

.Wrap = wdFindStop 'see takistab Wordi jätkamist dokumendi lõpuni

See koodirida soovitab asendada ka teksti vormingu:

.Format = True 'tahame asendada ka teksti vormindamise

Otsige ja asendage ainult vahemikus

Selle asemel, et asendada teksti kogu dokumendis või valikus, võime käsutada VBA -l otsida ja asendada ainult vahemikus. Selles näites määratlesime vahemiku esimese lõiguna:

Dim oRange kui vahemik Määra oRange = ActiveDocument. Lõiked (1).
Sub ReplaceInRange () 'asendab teksti JUST vahemikus [selles näites vaid esimeses lõigus] Dim oRange As Range Set oRange = ActiveDocument.Parags (1) .Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting With oRange. Leia .Text = "nende" .Replacement.Text = "seal" .Forward = Tõsi .Wrap = wdFindStop 'see takistab Wordi jätkamist dokumendi lõpuni .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = Vale .MatchAllWordForms = Vale lõpp koos oRange.Find.Execute Asenda: = wdReplaceAll End Sub 
wave wave wave wave wave