zoukankan      html  css  js  c++  java
  • VBA 删除页

    怎么让word自动删除第3、6、9、12等3的倍数页‘

    Sub kk1206190933()
      Dim wNum As Integer
      Dim wPag As Integer
      With Selection
      wPag = .Information(wdNumberOfPagesInDocument)
        For wNum = Int(wPag / 3) * 3 To 3 Step -3
          .GoTo wdGoToPage, , wNum
          .Bookmarks("Page").Range.Delete
        Next
      End With
    End Sub
    

    VBA实现检查和删除Word中的空白页

    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
    

      

    Sub AA()
    
    Dim myRange As Range
    
    Dim wNum As Integer
    Dim wPag As Integer
    Dim start As Integer
    
    wPag = Selection.Information(wdNumberOfPagesInDocument)
    Selection.GoTo wdGoToPage, wdGoToAbsolute, 3
    MsgBox (Selection.Range.start & "+" & Selection.Range.End)
    start = Selection.Range.start
             
           '.EndKey Unit:=wdStory
           'myRange.End = .Range.Start
           'MsgBox (myRange.Text)
          'If Replace(.Range.Text, Chr(13), "") = "" Or Replace(.Range.Text, Chr(13), "") = Chr(12) Then
           '.Bookmarks("Page").Range.Delete
          'End If
      
      Selection.EndKey Unit:=wdStory
      Selection.Select
      MsgBox (Selection.Range.start & "+" & Selection.Range.End)
      'Set myRange = ActiveDocument.Range(ActiveDocument.GoTo(wdGoToPage, wdGoToAbsolute, 3).start, End:=ActiveDocument.GoTo(wdGoToPage, wdGoToAbsolute, 3).start)
      
     Set myRange = ActiveDocument.Range(start, End:=Selection.start)
      
      MsgBox (myRange.Text)
      
    End Sub
    

      

  • 相关阅读:
    Maven最全指南,看了必懂(转载)
    MySQL:数据库优化
    关于 MyBatis 10 种通用的写法
    Redis 性能问题分析(转载)
    前端对于服务端渲染(SSR)的理解
    JS 中的编码和解码(encode和decode)
    SEO、SPA、SSR的区别关系详解
    VUE 项目路由的两种模式(hash、history)
    Chrome和IE浏览器的渲染过程区别
    对于前端缓存的理解(缓存机制和缓存类型)
  • 原文地址:https://www.cnblogs.com/skykang/p/3601044.html
Copyright © 2011-2022 走看看