我需要编写一个 VBA Word 宏,它将执行查找和替换操作,将一种字体中所有出现的文本更改为另一种字体。我的代码(下面列出)执行此操作,但忽略文档中文本框中的所有文本。如何修改此宏以搜索文档中文本框内部和外部的所有文本(页眉和页脚将是一个加号,但不是绝对必要的)或在宏中以不同的方式执行此操作。该宏是一个更大的宏的一部分,该宏处理数以万计的文档,因此手动执行任何操作都是不可行的。
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Font.Name = "PPalotina2007"
.Replacement.Font.Name = "Palotina X"
End With
Selection.Find.Execute Replace:=wdReplaceAll
最佳答案
在 http://word.mvps.org/faqs/customization/ReplaceAnywhere.htm 找到此内容我应该注意,这仅适用于每种类型故事的第一个...链接上提供了更好的代码,用于访问所有故事范围。
Sub FindAndReplaceFirstStoryOfEachType()
Dim rngStory As Range
For Each rngStory In ActiveDocument.StoryRanges
With rngStory.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Font.Name = "PPalotina2007"
.Replacement.Font.Name = "Palotina X"
End With
rngStory.Find.Execute Replace:=wdReplaceAll
Next rngStory
End Sub
关于vba - Word 宏用于查找并用文本框替换 Word 文档中的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27259393/