Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 01-23-2020, 09:12 AM
kalton kalton is offline Windows 10 Office 2016
Novice
Delete last page of .docx and then save as .pdf for all the files in a folder
 
Join Date: Jan 2020
Posts: 1
kalton is on a distinguished road
Default Delete last page of .docx and then save as .pdf for all the files in a folder

Currently, I am trying to write something in word VBA to delete the last page for a document and then save it as a pdf before moving onto the next one. The macro runs for about ~15 documents before giving the error runtime error 5904: cannot edit range. This is a little concerning as I have ~350 documents that need to have this done to them.



Does anyone have any ideas on what to do?

Code:
Sub ConvertWordsToPdfs()

    Dim directory As String
    directory = "C:\Users\kalton\Documents\TEST" ' The starting directory

    Dim fso, folder, files
    Set fso = CreateObject("Scripting.FileSystemObject")

    Set folder = fso.GetFolder(directory)
    Set files = folder.files

    For Each File In files

        Dim newName As String
        newName = Replace(File.Path, ".docx", ".pdf")

        Documents.Open FileName:=File.Path, _
            ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
            PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
            WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
            wdOpenFormatAuto, XMLTransform:=""

            DeleteLastPage

        ActiveDocument.ExportAsFixedFormat OutputFileName:=newName, _
            ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
            wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
            Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
            CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
            BitmapMissingFonts:=True, UseISO19005_1:=False
        ActiveDocument.Close savechanges:=False

    Next

End Sub

Sub DeleteLastPage()
Dim lngCharacters As Long
Dim r As Range

With ActiveDocument
    lngCharacters = .GoTo(wdGoToPage, wdGoToLast).Start
    Set r = .Range(lngCharacters - 1, .Range.End)
    r.Delete
End With
End Sub

Last edited by macropod; 01-23-2020 at 09:19 PM. Reason: Added code tags
Reply With Quote
 

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Delete last page of .docx and then save as .pdf for all the files in a folder Web Page, Filtered. 2010. Save as .docx JonJacobs Word 3 12-14-2018 10:38 AM
Looping through a folder of PDF files and saving them as docx ballpoint Word VBA 5 11-22-2018 05:18 AM
Delete last page of .docx and then save as .pdf for all the files in a folder Run Code on all files and save files as .docx Plokimu77 Word VBA 4 06-05-2016 04:41 PM
Delete last page of .docx and then save as .pdf for all the files in a folder Macro to change all text color to black in all docx files in a selected folder joewoods Word VBA 13 05-16-2016 06:29 PM
Macro to change/convert/delete txt files in folder+subfolders NoS Word VBA 4 03-03-2016 12:10 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 05:27 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft