Goal:
Copy all rows of a worksheet from row 1 until no data is found in only columns A:C (prefer this automation to using named range, if possible), with row 1 being a header for each page, format as follows, and paste (or overwrite if already there) into existing Word document at a specific bookmark. Formatting needs to be landscape, with left footer, as shown in the code. I keep getting ‘the picture is too large and will be truncated’ and it only prints the first page, with none of the formatting I want (landscape, left footer, margins set, etc.). Also, it looks like the bookmark is at the end of the table in Word, and I need the bookmark at the beginning.

I originally had the macro just creating PDF’s and had planned to insert them as objects in Word, but as far as I can tell, Word only displays the first page of inserted objects. ☹ So, pieces of this macro are not being utilized in this version, as they were for PDF formatting/creation. I left them in to show how I had it working and formatting correctly to PDF. If anyone has suggestions on modifying the code to achieve the desired goal, it would be greatly appreciated!

The 3 things I am having trouble with are:
1. How to get the desired formatting to work in the Word conversion
2. How to get more than 1 page to display after the pasting.
3. How to get the results to display AFTER instead of BEFORE the bookmark.


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Prints Individual Plan sheet Level settings for Reference files by Section into Word/PDF, 1 Section/Button at a time
'
' BEGIN Print_Plan_Levels_To_PDF and save in C:\_EDG
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


Sub Print_Plan_Levels_Section_01_Word()


'Name of the existing Word doc.
    Const stWordReport As String = "ORD_EDG_v10-0.docx"
    
'Word objects.
    Dim wdApp As Word.Application
    Dim wdDoc As Word.Document
    Dim wdbmRange As Word.Range
    
'Excel objects.
    Dim wbBook As Workbook
    
'Initialize the Excel objects.
    Set wbBook = ThisWorkbook
        
'Initialize the Word objects.
    Set wdApp = New Word.Application
    Set wdDoc = wdApp.Documents.Open(wbBook.path & "\" & stWordReport)
    Set wdbmRange = wdDoc.Bookmarks("Section01").Range
    
'If the macro has been run before, clean up any artifacts before trying to paste the table in again.
    On Error Resume Next
    With wdDoc.InlineShapes(1)
        .Select
        .Delete
    End With
    On Error GoTo 0
    
    'Turn off screen updating.
    Application.ScreenUpdating = False

'Select and format the Plan Sheet worksheets for printing to PDF

Dim ws01 As Worksheet
Set ws01 = ThisWorkbook.Sheets("(01)Cover_Drawing")
With Worksheets("(01)Cover_Drawing").PageSetup
    .CenterHeader = _
    Format(Worksheets("MacroButtons").Range("D1").Value & Chr(13) _
    & Worksheets("MacroButtons").Range("G1").Value & Chr(13) _
    & Worksheets("(01)Cover_Drawing").Range("A2"))
    .LeftFooter = _
    Format(Worksheets("(01)Cover_Drawing").Range("A2"))
    .RightFooter = ""
    .LeftMargin = Application.InchesToPoints(0.25)
    .RightMargin = Application.InchesToPoints(0.25)
    .TopMargin = Application.InchesToPoints(1)
    .BottomMargin = Application.InchesToPoints(0.5)
    .Orientation = xlLandscape
End With

'Dynamically set the print range based on the last occupied row in column 2

ws01LR = ws01.Cells(Rows.Count, 2).End(xlUp).Row
ws01LC = ws01.Cells(2, Columns.Count).End(xlToLeft).Column

'Set the print area based on the results of the dynamic range

Set Print01 = ws01.Range("a1:c" & ws01LR)

'Save the print area for export to PDF

ws01.PageSetup.PrintArea = Print01.Address(0, 0)

'Export to PDF C:\_EDG

Dim rngRange        As Range
Dim path            As String

'creates file save path, if doesn't exist
path = "C:\_EDG"
If Len(Dir(path, vbDirectory)) = 0 Then MkDir path

ActiveWorkbook.Activate

Set rngRange = Worksheets("(01)Cover_Drawing").Range("Print_Area")

'Copy the report to the clipboard.
    rngRange.Copy
    
'Select the range defined by the bookmark and paste in the data from clipboard.
    With wdbmRange
        .Select
        .PasteSpecial Link:=False, _
                      DataType:=wdPasteMetafilePicture, _
                      Placement:=wdInLine, _
                      DisplayAsIcon:=False
    End With
    
'Save and close the Word doc.
    With wdDoc
        .Save
        .Close
    End With
    
    'Quit Word.
    wdApp.Quit
    
    'Null out your variables.
    Set wdbmRange = Nothing
    Set wdDoc = Nothing
    Set wdApp = Nothing
    
    'Clear out the clipboard, and turn screen updating back on.
    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
    End With

Sheets("MacroButtons").Select
MsgBox "Plan Sheet Levels PDFs Created Successfully in C:\_EDG!" & vbNewLine & vbNewLine & "Click 'OK' to Return to EDG_ORD_Master Spreadsheet"
End Sub