keepcalculator

06 Numbers and Powers

Print Entire Multiple Workbooks at Once in Excel

Card No. 06·65434 · Updated · Standard formula, shown below

The calculator on this card is switched off while it is checked. The formula is below, and the worked example shows how to do the sum by hand.

Yes, you can print multiple Excel workbooks entirely without opening each file individually. The simplest method is to select the files in File Explorer, right-click, and choose Print — but that only works for files in the same folder and prints each workbook’s active sheet. For full control over printing all sheets in multiple files, you need a small VBA macro or a third-party tool. This article explains both approaches, the limitations of each, and how to avoid common printing pitfalls.

Why Printing Multiple Workbooks Is Tricky

Excel does not have a built-in “print all workbooks in a folder” command. The right-click Print option in Windows sends each selected file to the default printer using its last-saved print settings, and it only prints the active sheet — not the entire workbook. If you need every sheet from every file, you must either automate Excel with VBA or use a dedicated batch-printing utility. Understanding this limitation is the first step to choosing the right solution.

Method 1: Windows Right-Click Print (Quick but Limited)

This is the fastest way to print multiple workbooks, but it has strict requirements:

  • All files must be in the same folder (or you can select files across folders by holding Ctrl and clicking).
  • Only the active sheet (the one saved as the current view) in each workbook is printed.
  • The print settings (printer, copies, orientation) are taken from each file’s saved settings.

Steps: Open File Explorer, navigate to the folder, select the workbooks (Ctrl+click or Shift+click), right-click any selected file, and choose Print. Windows opens Excel in the background, prints each file, and closes it. If you need all sheets, this method will not work — use the VBA approach below.

Method 2: VBA Macro to Print All Sheets in Multiple Workbooks

For full control, a simple VBA macro can loop through every .xlsx file in a folder and print all sheets. Here is a working macro:

  1. Press Alt+F11 to open the VBA editor in Excel.
  2. Go to Insert > Module and paste the code below.
  3. Modify the folder path in the code to your own folder.
  4. Press F5 to run the macro.
Sub PrintAllWorkbooks()
    Dim FolderPath As String
    Dim FileName As String
    Dim wb As Workbook
    
    FolderPath = "C:\YourFolder\" ' change this
    FileName = Dir(FolderPath & "*.xlsx")
    
    Application.ScreenUpdating = False
    Do While FileName <> ""
        Set wb = Workbooks.Open(FolderPath & FileName)
        wb.PrintOut ' prints all sheets
        wb.Close SaveChanges:=False
        FileName = Dir
    Loop
    Application.ScreenUpdating = True
    MsgBox "Done printing all workbooks."
End Sub

This macro opens each workbook, prints every sheet (using the default printer and settings), and closes without saving. It processes all .xlsx files in the specified folder. If you need to print only specific sheets, change wb.PrintOut to wb.Sheets("Sheet1").PrintOut or loop through sheets with conditions.

Method 3: Third-Party Batch Print Utilities

If you prefer not to use VBA, several free and paid tools can batch print Excel files. These tools typically offer more options, such as printing specific sheet names, setting page orientation, or adding PDF output. Search for “batch print Excel” and choose a reputable utility. Always download from official sources and scan files with antivirus software. Note that free versions may have limitations on file count or add watermarks.

Common Problems and How to Avoid Them

  • Printing only the active sheet: Right-click Print uses the active sheet. Use VBA or a tool that explicitly prints all sheets.
  • File format issues: The VBA macro above only processes .xlsx files. If you have .xls or .xlsm, adjust the pattern (e.g., “*.xls*”).
  • Print settings not as expected: Each workbook retains its own page setup. To standardize, you must update each file or use a tool that overrides settings.
  • Excel crashes with many files: The macro opens files sequentially, which is memory-friendly. If you have hundreds of files, consider processing in batches.
  • Printer queue overwhelmed: Sending 50 files at once can cause delays. The macro prints sequentially, so this is less of an issue, but the right-click method may queue many jobs.

How to Choose the Right Method

Consider your needs:

  • Need a quick one-off print of a few files, and only the first sheet? Use right-click Print.
  • Need all sheets from many files regularly? Use the VBA macro — it’s free and reliable.
  • Need advanced options like printing specific sheets, PDF output, or custom page setup? Use a third-party tool.
  • Are you on a Mac? The right-click Print works similarly, but VBA is not available in the current Mac Excel. Use a third-party tool or print via AppleScript (advanced).

Frequently Asked Questions

Can I print multiple workbooks without opening Excel?

Yes, the Windows right-click Print method does not visibly open Excel, but it does launch Excel in the background. The VBA macro requires Excel to be open. A third-party tool might work without Excel, but most still rely on Excel’s print engine.

How do I print only specific sheets from multiple workbooks?

In VBA, modify the loop to check sheet names. For example, add If wb.Sheets(i).Name = "Summary" Then wb.Sheets(i).PrintOut. Third-party tools often have a sheet-name filter. Right-click Print cannot do this.

Why does my right-click Print only print the first sheet?

Because Windows sends the print command to Excel, which prints the active sheet. The active sheet is whatever was last saved as the current view. To change it, open each file, select the sheet you want, and save. Or use VBA.

Will the VBA macro work with .xlsm or .xls files?

Yes, if you change the file pattern in the Dir function. For example, Dir(FolderPath & "*.xls*") matches .xls, .xlsx, and .xlsm. Be careful with .xlsm files that contain macros — they will open and print, but the macro will not save changes.

Can I print multiple workbooks to PDF instead of a printer?

Yes. In VBA, replace wb.PrintOut with wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FolderPath & "PDF\" & wb.Name & ".pdf". This saves each workbook as a PDF in a subfolder. Third-party tools often include PDF export.

Is there a way to print all sheets in a single workbook faster?

Yes, you can select all sheet tabs (right-click a tab, choose “Select All Sheets”), then go to File > Print and choose “Print Entire Workbook.” This is the built-in method for one file. For multiple files, use VBA.

Final Thoughts

Printing multiple workbooks entirely is a common need, and while Excel lacks a dedicated button, the VBA macro provides a free and reliable solution. The right-click method is fine for quick, single-sheet prints. For complex needs, third-party tools offer convenience but at a cost. Always test on a few files first to ensure the output matches your expectations.

Related

Formula used

Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →