zoukankan      html  css  js  c++  java
  • VAB删除Word多余空行

    word中的空白页,可能由于回车产生,还有可能由插入的分页符产生,以下代码通过读取每一页的数据并判断,实现对Word中

    空白页的检查,并可实现自动删除!

    在word中,插入一个模块,复制如下代码

    Option Explicit

    Sub GetBlankPage()
    Dim IsDelete As Boolean
    Dim PageCount As Long
    Dim rRange     As Range
    Dim iInt     As Integer, DelCount As Integer
    Dim tmpstr As String
     
        IsDelete = True
        PageCount = ThisDocument.BuiltInDocumentProperties(wdPropertyPages)
        For iInt = 1 To PageCount
            '超过PageCount退出
            If iInt > PageCount Then Exit For
           
            '取每一页的内容
            If iInt = PageCount Then
                Set rRange = ThisDocument.Range( _
                                Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt).Start)
            Else
                Set rRange = ThisDocument.Range( _
                                Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt).Start, _
                                End:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt + 1).Start _
                                )
            End If
           
            If Replace(rRange.Text, Chr(13), "") = "" Or Replace(rRange.Text, Chr(13), "") = Chr(12) Then
                tmpstr = tmpstr & "第 " & iInt & " 页是空页" & vbCrLf
                '删除?
                If IsDelete Then
                    DelCount = DelCount + 1
                    '删除空白页
                    rRange.Text = Replace(rRange.Text, Chr(13), "")
                    rRange.Text = ""
                    '重算页数
                    PageCount = ThisDocument.BuiltInDocumentProperties(wdPropertyPages)
                    If iInt <> PageCount Then
                        '页删除后,页码变化,重新检查当前页
                        iInt = iInt - 1
                    Else
                        '最后一个空页
                        Set rRange = ThisDocument.Range( _
                                        Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, PageCount - 1).Start, _
                                        End:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, PageCount + 1).Start _
                                        )
                        '如果是分页符,删除上一页中的换页符
                        If InStr(1, rRange.Text, Chr(12)) > 0 Then
                            rRange.Characters(InStr(1, rRange.Text, Chr(12))) = ""
                        Else
                            '没有分页符,通过选中后删除,最好不这样做,如果判断错误,有误删除的风险
                            Set rRange = ThisDocument.Range( _
                                            Start:=ThisDocument.GoTo(wdGoToPage, wdGoToAbsolute, iInt).Start)
                            rRange.Select
                            Selection.Delete
                        End If
                        Exit For
                    End If
                End If
            End If
        Next
       
        If 1 = 1 Or Not IsDelete Then
            If tmpstr = "" Then
                MsgBox "没有空页", vbInformation + vbOKOnly
            Else
                MsgBox tmpstr, vbInformation + vbOKOnly
            End If
        Else
            If DelCount > 0 Then MsgBox "删除空页 " & DelCount, vbInformation + vbOKOnly
        End If
    End Sub

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qffhq/archive/2008/10/08/3031282.aspx

  • 相关阅读:
    macOS 的 rootless 机制的关闭与打开
    关于 Android 9.0 ClassNotFoundException: Didn't find class "org.apache.http.protocol.BasicHttpContext"
    Android 笔记
    AS apk 安装不了问题
    关于 android.view.WindowLeaked: 窗体泄露
    AS 解决support-annotations版本冲突
    Android xml 设置半透明
    macOS 配置 adb 和 Android Studio 配置夜神模拟器
    iOS 获取控件相对屏幕(父N级)坐标位置
    NSInternalInconsistencyException attempt to delete row 2 from section 4 which only contains 0 rows before the update 问题原因
  • 原文地址:https://www.cnblogs.com/yunbo/p/1614086.html
Copyright © 2011-2022 走看看