Word VBA Find
Този пример е прост макрос от думи, който намира текста „а“:
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 = Фалшив край с избор. Намерете. Изпълнете крайния под
Намерете и заменете
Този прост макрос ще търси думата „техен“ и ще я замени с „там“:
Sub SimpleReplace () Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "техния" .Replacement.Text = "там". Forward = True. Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = Фалшив край с избор.Намерете
Намерете и заменете само в Избор
Този VBA макрос ще намери и замени текст в селекция. Той също така ще замести текста с курсив.
Sub ReplaceInSelection () 'заменя текста ПРОСТО в избора. освен това прави заменен текст курсив Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "техния" С .Replacement .Font.Italic = True .Text = "там" End With .Forward = True .Wrap = wdFindStop 'това предотвратява Word да продължи до края на doc. Format = True' искаме да заменим и форматирането на текст. MatchCase = False .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End С Selection.Find.Execute Replace: = wdReplaceAll End Sub
Този ред код пречи на VBA да продължи до края на документа на Word:
.Wrap = wdFindStop 'това предотвратява Word да продължи до края на doc
Този ред код показва, че трябва да замени и форматирането на текста:
.Format = True 'искаме да заменим и форматирането на текст
Намерете и заменете само в обхвата
Вместо да заместваме текста в целия документ или в селекция, можем да кажем на VBA да намери и замени само в обхват. В този пример дефинирахме диапазона като първи параграф:
Dim oRange As Range Set oRange = ActiveDocument. Параграфи (1).
Sub ReplaceInRange () 'замества текста ПРОСТО в обхват [в този пример само в първия параграф] Dim oRange As Range Set oRange = ActiveDocument.Paragraphs (1). Range oRange.Find.ClearFormatting oRange.Find.Replacement.ClearFormatting Намерете .Text = "техния" .Replacement.Text = "там" .Forward = True. Wrap = wdFindStop 'това предотвратява Word да продължи до края на doc. Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End с oRange.Find.Execute Replace: = wdReplaceAll End Sub