Sub 批量删除页眉页脚()
'此代码功能为列出指定文件夹中所有选取的WORD文件全路径名
Dim myDialog As FileDialog, oDoc As Document, oSec As Section
Dim oFile As Variant, myRange As Range ’Variant 变体型,即任意类型
'On Error Resume Next ‘脚本执行发生错误后不停止
On Error GoTo ErrHandler '出现错误后跳转
'定义一个文件夹选取对话框
Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
With myDialog 'with简化赋值语句
.Filters.Clear '清除所有文件筛选器中的项目,确保所有的条件都显示
'增加筛选器的项目为所有Word文件,添加文件类型的项目位置,该参数从1开始
.Filters.Add "所有Word文件", "*.doc,*.docx", 1
.AllowMultiSelect = True '允许多项选择
If .Show = -1 Then '确定 显示对话框,等待用户操作,-1 为用户进行了确认操作
For Each oFile In .SelectedItems '在所有选取项目中循环
Set oDoc = Word.Documents.Open(FileName:=oFile, Visible:=False)
For Each oSec In oDoc.Sections '文档的节中循环
On Error Resume Next
Set myRange = oSec.Headers(wdHeaderFooterPrimary).Range
myRange.Delete '删除页眉中的内容
'将页眉所在段落的底部设置为无边框模式
myRange.ParagraphFormat.Borders(wdBorderBottom).LineStyle = wdLineStyleNone
'ParagraphFormat 段落格式,Borders 对象的边框
'Border.LineStyle 返回或设置指定对象的边框线型。
Set myRange = oSec.Footers(wdHeaderFooterPrimary).Range
myRange.Delete '删除页脚中的内容
On Error GoTo ErrHandler
Next
oDoc.Save
oDoc.Close
Set oDoc = Nothing
Next
End If
End With
Exit Sub
ErrHandler:
Dim errMsg As String
errMsg = "删除页眉页脚时发生错误:" & vbCrLf & _
"错误编号:" & Err.Number & vbCrLf & _
"错误描述:" & Err.Description
response = MsgBox(errMsg & vbCrLf & "是否退出?", vbYesNo + vbCritical)
If response = vbYes Then
Exit Sub
Else
Resume
End If
End Sub
在 Word 文档中,每个页面可以分为不同的“节”(Section),通过分节可以为不同的页面设置独立的页码、页眉、页脚等格式,并且可以在每个节中进行不同的操作。因此,如果需要批量删除页眉页脚,需要先确定要删除的页眉页脚所在的节,然后对每个节进行操作。
相反,如果是要批量替换文本内容,文本可以位于页面的任何位置,并不一定受到某个节的影响。因此,在批量替换文本内容时,不需要显式的定义节。
对于特殊设置的页眉页脚,本代码会出现无法删除的情况