Answers
Short answer: Excel has no built-in option that writes one PDF file per worksheet — Save as PDF gives you the active sheet, a selection of sheets, or the entire workbook, always as a single file. To get separate files you either export each sheet by hand, or run a short VBA loop over the worksheets. The macro below is the whole answer, and it takes about a minute to set up.
Right-click the sheet tab → Move or Copy → (new book) → export that workbook, and repeat. Tedious past a handful, fine for three.
Or simply: click the sheet, File → Save As → PDF, and check that Options → Publish what is set to Active sheet(s). Then repeat per sheet, changing the filename each time.
Press Alt + F11, then Insert → Module, and paste:
Sub ExportEachSheetAsPDF()
Dim ws As Worksheet
Dim folderPath As String
folderPath = ThisWorkbook.Path & "\"
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetVisible Then
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=folderPath & ws.Name & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next ws
End Sub
Run it with F5. Each visible worksheet becomes SheetName.pdf next to the workbook.
Three things worth knowing before you rely on it:
ThisWorkbook.Path is empty for a file that has never been saved, and the export fails with an unhelpful error.Q3 / Q4 will fail, because a slash is not legal in a filename.IgnorePrintAreas:=False means each sheet’s print area still applies. If a sheet has a stale print area, that sheet’s PDF quietly comes out short. Set it to True if you want the full used range instead.If you were hoping a converter would hand back one file per sheet, be careful which one you pick. CrazySmartPDF does not do that: it renders one PDF per workbook, with every sheet laid out as its own clean section inside it, and the desktop app batches a folder of workbooks in one pass. That is a good fit if your files are already one document per workbook — a folder of invoices, statements or timesheets. It is the wrong tool if you specifically need Sheet1.pdf, Sheet2.pdf, Sheet3.pdf out of one file. For that, the macro above is the answer, and it is free.
What CrazySmartPDF does add on the shapes it fits: rows kept whole across page breaks, wide tables kept readable rather than clipped, and a flag on any page that came out blank or clipped. Windows with Excel 2016+, free on your own files. See how it works.
Can Excel export each worksheet as a separate PDF without a macro? Not in one step. The Save As dialog exports the active sheet, selected sheets, or the whole workbook into one file. Separate files means repeating the export or looping in VBA.
Why does my macro export blank PDFs for some sheets?
Usually a print area on those sheets covering an empty range, or a sheet that is genuinely empty. Set IgnorePrintAreas:=True to render the used range instead, and check Ctrl + End on the offending sheet.
How do I export only some sheets? Ctrl-click the tabs you want before exporting, and choose Active sheet(s) in the Options dialog — or add a name check inside the VBA loop.
What if I want one PDF with each sheet as its own section instead? Then export the entire workbook rather than looping, or use a renderer that lays out each sheet as its own section in a single file. That is the one-page-per-sheet question, which is a different job from separate files.