例如要删除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
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
温馨提示:答案为网友推荐,仅供参考