View Single Post
 
Old 08-08-2017, 12:26 PM
nullLF nullLF is offline Windows 10 Office 2010 64bit
Novice
 
Join Date: Aug 2017
Posts: 1
nullLF is on a distinguished road
Unhappy Remove pages from a .docx

Hi guys,
I am have a small problem which I was unable to solve for days now. I would be glad if you could give me some hints. I am somewhat experienced in VBA for Excel and Access. But this time I am struggling with Word.
Here is what I have:
Imagine I have a set of word documents where certain parts of the document need to be removed. I know the files and I know what needs removal. Luckily it is always a full page or multiple pages that need to go.
So I know how to parse through the files and so on. But I can not make a successful full page delete.
I try like this:
Code:
Public Sub test()
    Dim x As Document
    
    ActiveDocument.SaveAs "e:\temp\test.docm" ' please don't mind this, it is just here for testing
    Set x = Documents.Open("e:\temp\test.docm") ' this also
    ' imagine I want to everything before Page 3 and after Page 5
    DeleteBefore x, 3
    DeleteAfter x, 2
    x.Save
End Sub


Public Sub DeleteBefore(ByRef doc As Document, ByVal page_num As Long)
    Dim Rng As Range
    If page_num <= 1 Then _
        Exit Sub
    With doc
        Set Rng = .GoTo(wdGoToPage, , , 1)
        Set Rng = Rng.GoTo(wdGoToPage, , , page_num)
        Rng.Delete
    End With
End Sub

Public Sub DeleteAfter(ByRef doc As Document, ByVal page_num As Long)
    Dim Rng      As Range
    Dim max_page As Long
    max_page = doc.Content.ComputeStatistics(wdStatisticPages)
    If page_num >= max_page Then _
        Exit Sub
    With doc
        Set Rng = .GoTo(wdGoToPage, , , page_num + 1)
        Set Rng = Rng.GoTo(wdGoToPage, , , max_page)
        Rng.Delete
    End With
End Sub
Can anyone please give me some pointers how I can solve my riddle? I just need a few hints, I can do the digging myself then

Thanks O.o
nullLF
Reply With Quote