【问题标题】:Excel VBA UserForm printscreen save as pdfExcel VBA 用户窗体打印屏幕另存为 pdf
【发布时间】:2019-04-21 05:39:03
【问题描述】:

我有用户表单,我有按钮来获取用户表单的打印屏幕,粘贴到新创建的工作表并将其导出为 pdf。我对当前代码的问题是:

1) 我想将打印屏幕放在一页上,现在它需要打印屏幕并分成两页。

2) 打印屏幕分辨率更高。是否可以提高打印屏幕的分辨率以获得更高的质量?

我用于用户窗体上的按钮的代码:

Private Sub btnPrintPDF_Click()
'change to your button name
    Dim pdfName As String
    Dim newWS As Worksheet

    Application.DisplayAlerts = False

    keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
    keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0

    DoEvents 'Otherwise, all of screen would be pasted as if PrtScn rather than Alt+PrtScn was used for the copy.

    Set newWS = ThisWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count))
    newWS.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
    pdfName = ThisWorkbook.Path & "\" & Sheets("MAIN").Range("D14").Value & "Project_Summary" & "_" & " " & Format(Now, "yyyy-mmm-dd") & ".pdf"
    newWS.ExportAsFixedFormat Type:=xlTypePDF, _
        FileName:=pdfName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    newWS.Delete
    Unload Me
    Application.DisplayAlerts = True
    ThisWorkbook.Sheets("MAIN").Activate
End Sub

【问题讨论】:

    标签: excel vba printing userform


    【解决方案1】:
    Application.PrintCommunication = False
    With newWS.PageSetup
        .Orientation = xlLandscape
        .Zoom = False
        .FitToPagesWide = 1
    End With
    Application.PrintCommunication = True
    ewWS.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=pdfName, Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    

    【讨论】:

    • 谢谢!这个适合一页,但是有什么方法可以让我的截图质量更高吗?我的意思是当我打开新创建的 PDF 时,它看起来不像是在 2018 年拍摄的,更像是在 1995 年拍摄的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2017-05-08
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多