如何使用Word VBA读取Word文档最后一页的页眉文本内容
问题说明
- 创建2页Word文档,页眉添加格式为
Current {page}, total {numpages}的域代码,第一页页眉显示Current 1, total 2,第二页页眉显示Current 2, total 2,需要读取最后一页的页眉文本,即目标值Current 2, total 2。 - 现有VBA代码仅能读取第一页页眉内容,代码如下:
Sub a() MsgBox ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text End Sub
实现方案
直接读取Sections下的Headers对象Range文本时,默认返回页眉域在第一页的计算结果,无法自动匹配后续页码的域显示值。可以先定位到文档最后一页,再读取当前页所属节的页眉内容,代码如下:
Sub GetLastPageHeader() Dim lastPage As Long Dim savedPos As Range ' 保存当前光标位置,操作完成后恢复 Set savedPos = Selection.Range ' 定位到文档最后一页 Selection.GoTo What:=wdGoToPage, Which:=wdGoToLast lastPage = Selection.Information(wdActiveEndPageNumber) Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=lastPage ' 读取当前页页眉内容并弹窗展示 MsgBox Selection.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text ' 跳回原编辑位置 savedPos.Select End Sub
注意事项
- 如果文档开启了「首页不同」「奇偶页不同」的页眉设置,需要先判断最后一页的页码属性,将代码中
wdHeaderFooterPrimary替换为对应类型的枚举值:- 首页页眉:
wdHeaderFooterFirstPage - 偶数页页眉:
wdHeaderFooterEvenPages
- 首页页眉:
- 代码不会修改文档原有内容,也不会改变用户原本的光标编辑位置。
内容的提问来源于stack exchange,提问作者oyster
相关产品推荐
相关产品推荐

