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
 



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 02:46 AM.


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