【问题标题】:Excel Worksheet Saved As PDF - Print Area ChangesExcel 工作表另存为 PDF - 打印区域更改
【发布时间】:2016-03-16 17:35:13
【问题描述】:

我有一个 Excel 工作表,我有一个宏,可以将工作表作为 PDF 文件保存到我们网络上的目录中。当我在 Excel 中查看打印预览时,它位于 1 张纸上。但是,当我打开 PDF 文件时,它会流血到第二页。它是横向格式,在 PDF 中有一些 1 个表格和 1 个图表显示在第二张纸的左侧(页面的右侧流到下一页)。

我已经尝试了很多方法来让它坚持下去,但它不会奏效。以下是我尝试过的一些事情:

  • 手动设置打印区域和分页符
  • 通过宏更新数据后更新了打印区域和分页符。
  • 逐页打印设置(通过宏手动输入)
  • 设置打印 dpi(手动和通过宏)

任何见解都会很棒。 提前致谢。

【问题讨论】:

  • 将有助于显示您用于 PDF 输出的确切代码。

标签: excel vba pdf


【解决方案1】:

我在导出一系列工作表(仅导出打印区域)时遇到了同样的问题,我解决了。这是一个语法问题。 在 ExportAsFixedFormat 之前,不要放置“Selection”,而是放置 “Activesheet”,而 Activesheet 是否是导出的工作表之一。

ActiveWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

Sheets("Sheet1").Activate

Activesheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\myPath\myFileName " & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=showAfterSave 

【讨论】:

    【解决方案2】:

    我知道这看起来很愚蠢,但我发现这样做两次可以解决问题:)

    Sub Main(saveToPdf as boolean)
    
    If saveToPdf Then
    
    'save to pdf
        ActiveSheet.Range(ActiveSheet.PageSetup.PrintArea).Select
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "D:\myPath\myFileName " & year & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    
        Call oneMoreTimeBecauseItSolvesProblem(year, showAfterSave)
    End If 
    End Sub
    
    Sub oneMoreTimeBecauseItSolvesProblem(year As Integer, showAfterSave As Boolean)
    
        On Error Resume Next
        ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
        Application.ScreenUpdating = True
    
    'save to pdf
        ActiveSheet.Range(ActiveSheet.PageSetup.PrintArea).Select
        Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "D:\myPath\myFileName " & year & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=showAfterSave 
    End Sub
    

    【讨论】:

      【解决方案3】:

      试试……

      Sub Macro1()
      ActiveWorkbook.ExportAsFixedFormat _
      Type:=xlTypePDF, _
      Filename:="Example", _
      Quality:=xlQualityStandard, _
      IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, _
      From:=1, _
      To:=1, _
      OpenAfterPublish:=True
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        • 2017-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多