簡體   English   中英

將帶有圖形的工作表另存為PDF

[英]Save worksheet with graphs as PDF

我正在嘗試使用vba將工作表另存為pdf文件。 該工作表比A4頁寬,並且包含一些形狀(左右對齊)。 我希望工作表適合一張A4頁面,因此應按屏幕上顯示的那樣重新縮放。 我正在使用以下代碼:

Sub Print_PDF()

Dim sFilename As String

Worksheets.Add.Name = "Helpsheet"
sFilename = "G:\anything\test.pdf"
ThisWorkbook.Worksheets("Newsletter").Range("A2:D81").CopyPicture xlScreen, xlBitmap

ThisWorkbook.Sheets("Helpsheet").Activate
ThisWorkbook.Sheets("Helpsheet").Paste
ActiveSheet.PageSetup.PrintArea = ThisWorkbook.Sheets("Helpsheet").Range("A1:O86")
With ActiveSheet.PageSetup
    .Orientation = xlPortrait
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With

ThisWorkbook.Sheets("Helpsheet").ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFilename, quality:=xlQualityStandard, _
     IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Application.DisplayAlerts = False
ThisWorkbook.Sheets("Helpsheet").Delete
Application.DisplayAlerts = True

End Sub

該代碼實際上將PDF文件保存在預期的位置。 但是,PDF文件為4頁,而不是預期的1頁。 因此,似乎打印區域定義不正確。 我究竟做錯了什么?

您是否已嘗試根據此示例調整PageSetup參數?

Application.PrintCommunication = False
With ActiveSheet.PageSetup
    .Orientation = xlLandscape
    .Zoom = False
    '.PrintArea = Worksheets(ReportWsName).UsedRange
    .FitToPagesWide = 1
    '.FitToPagesTall = 1
End With
Application.PrintCommunication = True

認為明確地將.Zoom設置為false很重要。

來源: Excel VBA無法將Pagesetup正確導出為pdf

假設活動sheet("Helpsheet")也是工作sheet("Helpsheet") ,則打印區域需要打印范圍的地址。

ActiveSheet.PageSetup.PrintArea = ThisWorkbook.Sheets("Helpsheet").Range("A1:O86").Address

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM