使用 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.Range
和objDoc.Sections.Footers.Range
访问Word 页眉和页脚中的范围
好的,我尝试使用它,但我对该功能了解不多,我用谷歌搜索并发现有人使用“objDoc.Sections.Headers.Range.Select”但它没有t 对我有用,“请求的集合成员不存在。”
看这个:***.com/questions/49185230/…
【参考方案1】:
我创建了一个带有单页、页眉和页脚的测试文档,页脚使用关键字“VAR_DATA”。下面的示例代码将搜索文档中的所有页脚并进行替换。请注意,代码 only 在 Section(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 中查找和替换页脚文本的主要内容,如果未能解决你的问题,请参考以下文章