如何删除Word VBA中每个部分的前两页

时间:2014-09-05 10:20:18

标签: vba word-vba

我到处寻找代码来删除文档每个部分的前2页。我想出的最好的方法是转到绝对书签(“\ Page”),但这不适用于文档中的每个部分 - 它应该相对于每个部分,因为部分可以从1到无限制。 / p>

每个部分都有相同的5页布局(尽管内容确实有所不同)。没有可以最终查找的标题。另外,我需要删除页眉和页脚。所以我的代码如下:

Sub Macro1()
    Dim oSec As Section
    Dim oHead As HeaderFooter
    Dim oFoot As HeaderFooter

    For Each oSec In ActiveDocument.Sections
        For Each oHead In oSec.Headers
            If oHead.Exists Then oHead.Range.Delete
        Next oHead

        For Each oFoot In oSec.Footers
            If oFoot.Exists Then oFoot.Range.Delete
        Next oFoot
    Next oSec End Sub

这将删除每个部分中的页眉和页脚。另外,我想删除每个部分中5个中的前2页。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

Public Sub DeletePagesFromSections()

Dim oSec As Section
Dim i As Integer

Application.ScreenUpdating = False

For Each oSec In ActiveDocument.Sections
    For i = 1 To 2
        oSec.Range.Select
        Selection.Collapse
        ActiveDocument.Bookmarks("\page").Range.Delete 'this deletes current page
    Next i
Next oSec

Application.ScreenUpdating = False

End Sub