首页 > 解决方案 > 在 VBA 中将 Excel 工作表转换为 PDF 时,是否可以在指定的分页符之前进行缩放?

问题描述

我正在开发一个自动化工资单的项目,并且已经开发了几个宏,但在最后一步遇到了麻烦。我正在将数据从一个工作簿复制到另一个工作簿,以便将考勤表附在发票表上。然后我会自动创建 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。由于这个原因,第一张纸被缩小了,我希望它放大。

标签: excelvbapdfadobeacrobat

解决方案


试试这个,我认为变焦是在错误的地方。

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

推荐阅读