Как использовать код VBA для печати конкретной страницы в формате PDF в зависимости от значения ячейки - PullRequest
2 голосов
/ 24 сентября 2019

Я не очень продвинут с Excel или VBA, но мне удалось со временем кое-что решить.

В настоящее время у меня есть электронная таблица Excel с командной кнопкой, которая отправляет область печати вPDF.Для печати достаточно просто 2 страницы.

Мне бы хотелось, чтобы командная кнопка печатала либо просто страницу 1, либо страницу 2, либо страницы 1 и 2 в зависимости от значения ячейки.

Код, который я сейчас использую для печати всей области печати в PDF:

Sub PrinttoPDF()
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=Range("J2").Value & "_" & Range("J4").Value & "_" & "Budget Quotation" & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
End Sub

Может кто-нибудь посоветует, как изменить мой код?

Большое спасибо!

1 Ответ

0 голосов
/ 24 сентября 2019

Метод имеет параметры From и To.

В зависимости от того, будет ли значение А1 на листе 2 равным 1, 2 или что-то еще, он напечатает страницу 1, 2 или оба.

Я положил его на другой лист на случай, если он испортит вашу печать.Отрегулируйте для соответствия.

И лучше использовать имя листа, а не activesheet.

Sub PrinttoPDF()

Dim f As Long, t As Long    
Select Case Sheets("Sheet2").Range("A1").Value
    Case 1: t = 1: f = 1 'page 1
    Case 2: t = 2: f = 2 'page 2
    Case else: f = 1: t = 2 'pages 1-2
End Select

ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Range("J2").Value & "_" & Range("J4").Value & "_" & "Budget Quotation" & ".pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    from:=f, _
    to:=t, _
    OpenAfterPublish:=True

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...