vba - Word 宏用于查找并用文本框替换 Word 文档中的所有内容

标签 vba ms-word

我需要编写一个 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/

相关文章:

VBA,用 LastRow 定义范围

variables - 使长变量在 64 位和 32 位 Excel VBA 中工作

ms-word - Office 功能区 UI XML - 如何创建功能区内画廊而不是下拉按钮?

java - 如何将 HTML 转换为 Microsoft Word 文档?

javascript - 从 MS Word 粘贴到 Textarea

asp.net - 在 Web 表单中编辑文档(DOC、DOCX、RTF、TXT)

excel - 如果内容的总和 = 零并跳过空白,我如何隐藏 Excel 行?

vba - 如何在activex框架上显示到前面

excel - 突出显示然后删除列中不完全重复的项目

image - 无法将动态生成的图像从任何浏览器粘贴到 MS Word