'Loop through each worksheet For Each ws In ThisWorkbook.Worksheets ws.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=folderPath & ws.Name & ".pdf", _ Quality:=xlQualityStandard Next ws
Once you master ExportAsFixedFormat , you’ll wonder how you ever lived without it. Have a specific automation challenge? Combine VBA with file dialogs ( FileDialog(msoFileDialogFolderPicker) ) to let users choose where to save PDFs dynamically. excel vba print to pdf and save
Dim folder As String folder = ThisWorkbook.Path & "\" filePath = folder & "MyReport.pdf" Prevent duplicate names by adding the current date/time: 'Loop through each worksheet For Each ws In ThisWorkbook
Sub ExportInvoiceToPDF() Dim ws As Worksheet Dim invoiceNum As String Dim customerName As String Dim filePath As String Set ws = ThisWorkbook.Sheets("Invoice") Dim folder As String folder = ThisWorkbook
Sub ExportEntireWorkbookToPDF() Dim filePath As String filePath = "C:\PDF Reports\FullWorkbook.pdf"
'Get values from cells invoiceNum = ws.Range("B5").Value customerName = ws.Range("B6").Value customerName = Replace(customerName, " ", "_") 'Remove spaces
'Loop through each worksheet For Each ws In ThisWorkbook.Worksheets ws.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=folderPath & ws.Name & ".pdf", _ Quality:=xlQualityStandard Next ws
Once you master ExportAsFixedFormat , you’ll wonder how you ever lived without it. Have a specific automation challenge? Combine VBA with file dialogs ( FileDialog(msoFileDialogFolderPicker) ) to let users choose where to save PDFs dynamically.
Dim folder As String folder = ThisWorkbook.Path & "\" filePath = folder & "MyReport.pdf" Prevent duplicate names by adding the current date/time:
Sub ExportInvoiceToPDF() Dim ws As Worksheet Dim invoiceNum As String Dim customerName As String Dim filePath As String Set ws = ThisWorkbook.Sheets("Invoice")
Sub ExportEntireWorkbookToPDF() Dim filePath As String filePath = "C:\PDF Reports\FullWorkbook.pdf"
'Get values from cells invoiceNum = ws.Range("B5").Value customerName = ws.Range("B6").Value customerName = Replace(customerName, " ", "_") 'Remove spaces