批量删除word中的某一页(求VBA代码)

例如要删除100个word文档中的第4、第6页内容。。。以及第三页的说明

Public StartPageNum As Integer, EndPageNum As Integer

Sub aaa()

Dim myDialog As FileDialog, oFile As Variant, oDoc As Document
On Error Resume Next

Set myDialog = Application.FileDialog(msoFileDialogFilePicker)

myDialog.Filters.Clear '清除所有文件筛选器中的项目
myDialog.Filters.Add "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件
myDialog.AllowMultiSelect = True '允许多项选择

If myDialog.Show <> -1 Then Exit Sub

Dim SelectRange As Range
DlgDelePage.Show vbModal
If StartPageNum = 0 And EndPageNum = 0 Then
Exit Sub
End If

For Each oFile In myDialog.SelectedItems '在所有选取项目中循环

Set oDoc = Documents.Open(FileName:=oFile, Visible:=True) 'False)

Dim Pages As Integer, StartPage As Long, EndPage As Long

Pages = Selection.Information(wdNumberOfPagesInDocument)

If Not (StartPageNum > Pages) Then
If EndPageNum > Pages Then EndPageNum = Pages

If StartPageNum = 1 Then
StartPage = Selection.Range
Else
StartPage = Selection.GoTo(What:=wdGoToPage, Which:=wdGoToNext, Count:=StartPageNum - 1).Start
End If

If EndPageNum = Pages Then
EndPage = ActiveDocument.Content.End
Else
EndPage = Selection.GoTo(What:=wdGoToPage, Which:=wdGoToNext, Count:=IIf(EndPageNum - StartPageNum > 0, EndPageNum - StartPageNum + 1, 1)).End '.Start
End If

ActiveDocument.Range(StartPage, EndPage).Select
Selection.Delete

End If

'删除第3页批注
ActiveDocument.Words(1).Select '将光标移到文档开始位置
Dim myRange As Range, oComment As Comment
Set myRange = Selection.Range
StartPage = Selection.GoTo(What:=wdGoToPage, Which:=wdGoToNext, Count:=3 - 1).Start
EndPage = Selection.GoTo(What:=wdGoToPage, Which:=wdGoToNext, Count:=3 - 1).End

myRange = ActiveDocument.Range(StartPage, EndPage)

If myRange.Comments.Count > 0 Then
For Each oComment In myRange.Comments
oComment.Delete
Next
End If

oDoc.Save
oDoc.Close

Next oFile

End Sub
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网