使用 Excel VBA 宏在 Word 中查找和替换页脚文本

Posted

技术标签:

【中文标题】使用 Excel VBA 宏在 Word 中查找和替换页脚文本【英文标题】:Find and Replace footer text in Word with an Excel VBA Macro 【发布时间】:2019-08-27 10:01:34 【问题描述】:

我正在尝试在 Excel 中创建一个 macro,它会打开一个 Word 文档,找到一个位于 Word 文档中的 especify 文本strong>footer 在 word doc 中,并将其替换为文本。

目前,我的宏打开了 doc 这个词,但我不知道如何进入页脚并找到这些文本。

    Dim objWord
    Dim objDoc
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Open(ThisWorkbook.Path & "/NotaPromissoriaAutomatica.docx")
    objWord.Visible = True

页脚有两个需要替换的文本

1 - VAR_CIDADE > 将替换当前城市(在我的 Excel 表的 A1 中) 2 - VAR_DATA > 将替换当前日期(在我的 Excel 表的 A2 中)

【问题讨论】:

我认为您可以使用邮件合并到页眉/页脚中,这可能更容易... 它不能按我的意愿工作,我在使用邮件合并时,可以从我的 excel 表中获取文本,但它不会自动更新,我不知道我是否有更改任何配置...我的意思是,如果我用 excel VBA 打开文档,它不会更新,如果我手动打开,它会更新... 您可以使用objDoc.Sections.Headers.RangeobjDoc.Sections.Footers.Range 访问Word 页眉和页脚中的范围 好的,我尝试使用它,但我对该功能了解不多,我用谷歌搜索并发现有人使用“objDoc.Sections.Headers.Range.Select”但它没有t 对我有用,“请求的集合成员不存在。” 看这个:***.com/questions/49185230/… 【参考方案1】:

我创建了一个带有单页、页眉和页脚的测试文档,页脚使用关键字“VAR_DATA”。下面的示例代码将搜索文档中的所有页脚并进行替换。请注意,代码 onlySection(1) 中搜索。如果您有更多部分,则可能必须创建一个外部循环来搜索每个部分中的每个页脚。

Option Explicit

Public Sub FixMyFooter()
    Dim myWord As Object
    Dim myDoc As Word.Document
    Set myWord = CreateObject("Word.Application")
    Set myDoc = myWord.Documents.Open("C:\Temp\footertest.docx")

    Dim footr As Word.HeaderFooter
    For Each footr In myDoc.Sections(1).Footers
        With footr.Range.Find
            .Text = "VAR_DATA"
            .Replacement.Text = Format(Now(), "dd-mmm-yyyy")
            .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindStop
        End With
    Next footr

    myDoc.Save
    myWord.Quit
End Sub

您需要扩展示例以使用您自己的格式查找其他文本。

【讨论】:

以上是关于使用 Excel VBA 宏在 Word 中查找和替换页脚文本的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 宏在 Word 中水平对齐(分布)图像

Excel VBA 宏后期绑定

如何使用 Word VBA 宏在列标题下方添加一行并向下移动现有行?

使用 VBA 宏在 excel 行中搜索字符串的完全匹配

基于Excel中数据库的VBA在word中查找和替换

VBA Word 从 Excel 中查找和替换 /&-