2

У меня есть следующий код, который дает возможность пользователю в конце "Распечатать" лист

Я хочу изменить это. Пользователя должны спросить, хотим ли мы "Экспортировать его в PDF", если он выберет "Да", то откроется диалоговое окно "Сохранить как Excel" (которое мы получаем при нажатии клавиши F12) с "Сохранить как тип". = PDF:

Sub sbHide_Rows_Based_On_Criteria_Optional_Print()
    Dim lRow As Long
    Dim iCntr As Long
    Dim asn As Integer  

    With Sheets("QuoteSheet")        
        lRow = .Cells(Rows.Count, "L").End(xlUp).Row            
        For iCntr = lRow To 1 Step -1
            If .Cells(iCntr, "L") = "Y" Then
               .Rows(iCntr).Hidden = True
            End If
        Next iCntr        
    End With

    answer = MsgBox("Do You Want a Printout?", vbYesNo + vbQuestion, "Print Sheet")
    If answer = vbYes Then ActiveSheet.PrintOut    
End Sub

1 ответ1

3

Это должно работать:

answer = MsgBox("Do you want to export to PDF?", vbYesNo + vbQuestion, "Export to PDF")
If answer = vbYes Then
    fileSaveName = Application.GetSaveAsFilename("", fileFilter:="PDF (*.pdf), *.pdf")
    If fileSaveName <> False Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fileSaveName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    End If
End If

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .