ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Word > 如何批量删除Word中的空白页?

如何批量删除Word中的空白页?

作者:绿色风 分类: 时间:2022-08-18 浏览:109
楼主
wise
Q:如何批量删除Word中的空白页?
当PDF转换成word后,每一页后面都跟着一张空白页,有的就是空白,有的有少许字,如何删除这些空白页呢?大概页数有200多页。
以前个人收藏的代码,现分享出来给大家。
A:ALT+F11→插入模块→在模块中输入以下代码:
  1. Option Explicit
  2. Sub GetBlankPage()
  3. Dim IsDelete As Boolean
  4. Dim PageCount As Long
  5. Dim rRange     As Range
  6. Dim iInt     As Integer, DelCount As Integer
  7. Dim tmpstr As String

  8.     IsDelete = True
  9.     PageCount = ThisDocument.BuiltInDocumentProperties(wdPropertyPages)
  10.     For iInt = 1 To PageCount
  11.         '超过PageCount退出
  12.         If iInt > PageCount Then Exit For
  13.         
  14.         '取每一页的内容
  15.         If iInt = PageCount Then
  16.             Set rRange = ThisDocument.Range( _
  17.                             Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt).Start)
  18.         Else
  19.             Set rRange = ThisDocument.Range( _
  20.                             Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt).Start, _
  21.                             End:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt + 1).Start _
  22.                             )
  23.         End If
  24.         
  25.         If Replace(rRange.Text, Chr(13), "") = "" Or Replace(rRange.Text, Chr(13), "") = Chr(12) Then
  26.             tmpstr = tmpstr & "第 " & iInt & " 页是空页" & vbCrLf
  27.             '删除?
  28.             If IsDelete Then
  29.                 DelCount = DelCount + 1
  30.                 '删除空白页
  31.                 rRange.Text = Replace(rRange.Text, Chr(13), "")
  32.                 rRange.Text = ""
  33.                 '重算页数
  34.                 PageCount = ThisDocument.BuiltInDocumentProperties(wdPropertyPages)
  35.                 If iInt <> PageCount Then
  36.                     '页删除后,页码变化,重新检查当前页
  37.                     iInt = iInt - 1
  38.                 Else
  39.                     '最后一个空页
  40.                     Set rRange = ThisDocument.Range( _
  41.                                     Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, PageCount - 1).Start, _
  42.                                     End:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, PageCount + 1).Start _
  43.                                     )
  44.                     '如果是分页符,删除上一页中的换页符
  45.                     If InStr(1, rRange.Text, Chr(12)) > 0 Then
  46.                         rRange.Characters(InStr(1, rRange.Text, Chr(12))) = ""
  47.                     Else
  48.                         '没有分页符,通过选中后删除,最好不这样做,如果判断错误,有误删除的风险
  49.                         Set rRange = ThisDocument.Range( _
  50.                                         Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt).Start)
  51.                         rRange.Select
  52.                         Selection.Delete
  53.                     End If
  54.                     Exit For
  55.                 End If
  56.             End If
  57.         End If
  58.     Next
  59.    
  60.     If 1 = 1 Or Not IsDelete Then
  61.         If tmpstr = "" Then
  62.             MsgBox "没有空页", vbInformation + vbOKOnly
  63.         Else
  64.             MsgBox tmpstr, vbInformation + vbOKOnly
  65.         End If
  66.     Else
  67.         If DelCount > 0 Then MsgBox "删除空页 " & DelCount, vbInformation + vbOKOnly
  68.     End If
  69. End Sub
2楼
LOGO
谢谢分享。
3楼
ppmhyt
复制上去再怎么处理?

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap