在word文档的页眉或页脚可以添加页码。
一个页眉或页脚可以添加多个页码。
在word vba 中PageNumber 对象代表一个页码。
而PageNumbers集合对象代表了一个页眉或页脚中的所有页码。
要删除所有页码,可以遍历PageNumbers集合对象中的PageNumber对象,然后用PageNumber对象的Delete方法删除。
由于一个word文档中可以首页的页码与其它页的不同,也可以奇数页的页码和偶数页的页码不同,而且一个word文档还经常有很多个节,所以要遍历PageNumbers集合对象首先要遍历不同的节,然后再遍历每个节的首页和奇数页和偶数页的页眉和页脚。
根据上述知识,可以使用如下的vba代码批量删除word文档中的所有页码:
Sub QQ1722187970()
Dim oSection As Section
Dim oHF As HeaderFooter
Debug.Print Word.ActiveDocument.Sections.Count
Dim oDoc As Document
Set oDoc = Word.ActiveDocument
Dim oPN As PageNumber
With oDoc
For Each oSection In .Sections
With oSection
With .PageSetup
'首页不同
.DifferentFirstPageHeaderFooter = True
'奇偶页不同
.OddAndEvenPagesHeaderFooter = True
End With
'首页页脚
Set oHF = .Footers(wdHeaderFooterFirstPage)
For Each oPN In oHF.PageNumbers
oPN.Delete
Next
'奇数页页脚
Set oHF = .Footers(wdHeaderFooterPrimary)
For Each oPN In oHF.PageNumbers
oPN.Delete
Next
'偶数页页脚
Set oHF = .Footers(wdHeaderFooterEvenPages)
For Each oPN In oHF.PageNumbers
oPN.Delete
Next
'首页页眉
Set oHF = .Headers(wdHeaderFooterFirstPage)
For Each oPN In oHF.PageNumbers
oPN.Delete
Next
'奇数页页眉
Set oHF = .Headers(wdHeaderFooterPrimary)
For Each oPN In oHF.PageNumbers
oPN.Delete
Next
'偶数页页眉
Set oHF = .Headers(wdHeaderFooterEvenPages)
For Each oPN In oHF.PageNumbers
oPN.Delete
Next
End With
Next
End With
End Sub


非常感谢,很有用!