首页 > 其他 > 详细

VBA 删除页

时间:2014-03-15 11:59:43      阅读:576      评论:0      收藏:0      [点我收藏+]

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

1
2
3
4
5
6
7
8
9
10
11
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中的空白页

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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

  

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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

  

VBA 删除页,布布扣,bubuko.com

VBA 删除页

原文:http://www.cnblogs.com/skykang/p/3601044.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!