Есть ли способ масштабирования до указанного разрыва страницы при преобразовании листа Excel в PDF в VBA? - PullRequest
0 голосов
/ 30 мая 2019

Я работаю над проектом по автоматизации расчета заработной платы и уже разработал пару макросов, но на последнем этапе у меня возникли проблемы.Я копирую данные из одной рабочей книги в другую, чтобы табель учета рабочего времени был прикреплен к листу накладной.Затем я автоматизирую создание PDF-файлов, и когда я создаю PDF-файлы, они сжимаются, чтобы соответствовать большей странице, которую я прикрепил.Я вставил разрыв страницы вручную, чтобы создать две отдельные страницы в моем PDF, но PDF все еще сжимает первую страницу и не помещает ее на всю страницу.Есть ли способ увеличения до разрыва страницы, чтобы первая страница соответствовала полному размеру PDF?

Я пытался вручную изменить форматирование PDF, изменить предварительный просмотр и т. Д.

Sub Excel_to_PDF()


     Dim Path As String
     Dim filename As String
     Dim ws As Worksheet
     Dim nm As String



     For Each ws In Worksheets

     If ws.Visible = xlSheetVisible Then
        ws.Select
        nm = ws.Name
        ActiveSheet.Rows(44).PageBreak = xlPageBreakManual
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        filename:="C:\Users\rober\Desktop\Invoices\" & nm & "-" & ActiveSheet.Range("K6").Value & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
        End If
        Next ws

        Dim ZoomRng As Range
        Set ZoomRng = Range("A1:M43")
        ZoomRng.Select
        ActiveWindow.Zoom = True

End Sub

Я хочу, чтобы PDF был разбит на две страницы.Первая страница до строки 44, а вторая страница после.Это не проблема.Этот макрос работает для этого.Мне нужно, чтобы лист до строки 44 был увеличен и не масштабирован, чтобы соответствовать тем же размерам, что и второй лист.Первый лист идет от A1: L43, а второй лист от A50: AC110.Из-за этого первый лист сокращается, и я хочу, чтобы он был увеличен.

1 Ответ

0 голосов
/ 30 мая 2019

Попробуйте, я думаю, масштаб был не в том месте.

Sub Excel_to_PDF()


     Dim Path As String
     Dim filename As String
     Dim ws As Worksheet
     Dim nm As String



     For Each ws In Worksheets

      If ws.Visible = xlSheetVisible Then
        ws.Select
        nm = ws.Name

        Dim ZoomRng As Range
        Set ZoomRng = Range("A1:M43")
        ZoomRng.Select
        ActiveWindow.Zoom = True

        ActiveSheet.Rows(44).PageBreak = xlPageBreakManual
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        filename:="C:\Users\rober\Desktop\Invoices\" & nm & "-" & ActiveSheet.Range("K6").Value & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
       End If
      Next ws

End Sub
...