Excel has the option to print the active sheet, any selection on the active sheets as well as the entire workbook.
But what if you want to print multiple sheets in Excel but don’t want to print the entire workbook?
Of course, you can choose to print one single sheet at one time and repeat the process, but you don’t have to.
There is a way to print multiple sheets/tabs in Excel (not the entire workbook) and even print the same selection of cells on multiple sheets.
Let me show you how!
Print All Tabs/Sheets in the Workbook (Print Entire Workbook)
If you want to print all the worksheets in the active workbook, it’s pretty straightforward (the option is baked into Excel).
Here are the steps to print all the worksheets in the workbook:
- Click the File tab and then click on the Print option. Alternatively, you can also hold the Control key and press the P key (or Command + P if you’re using a Mac)
- In the Print Preview window that opens, in the Settings option, click on the Print Active Sheets option. This will show a drop-down with more options.
- Select the ‘Print Entire Workbook’ option.
- Select the Printer from the drop-down.
- Click the Print button.
Also read: How to Print Gridlines in Excel
Print Multiple Sheets in Excel (But Not All)
Suppose you have five sheets in the Excel workbook, and you only want to print the first three (or any other combination of sheets).
Below are the steps to do this:
- Select the sheets you want to print. To do this, hold the control key and then click on the tab where you have the sheet name.
- Hold the Control key and press the P key (or Command + P if you’re using a Mac)
- In the Print window that opens, under the Settings option, select Print Active Sheets.
- Select the Printer from the drop-down
- Click the Print button.
That’s it!
This will print all the selected sheets, as now, Excel considers all the selected sheets as active sheets and uses all of them while printing.
Pro Tip: In case you have sheets that are not contiguous, you need to hold the Control key and then use the mouse to select the sheets. In case these sheets are contiguous (i.e., all adjacent to each other), you can hold the SHIFT key, click on the left-most sheet and the right-most sheet, and it will select all the ones in between as well.
Caution: When you select multiple sheets, these are grouped together. When sheets are grouped, any changes you make will be made to all the grouped sheets. So make sure you ungroup the sheets once you’re done with printing.
Also read: How to Separate Excel Tabs Into Separate Files
Print a Specific Selection on Multiple Sheets
In case you want to print multiple sheets in Excel, but not the entire worksheet – only a specific part, you can do that too.
Note that this would work only when you need to print the same range from all the selected sheets.
Below are the steps to print the same selection from multiple sheets:
- Select all the sheets that you want to print. To do this, hold the Control key and select the sheets (or Command key if you’re using Mac)
- In the active sheet, select the range of cells that you want to print
- Hold the Control key and press the P key (or Command + P if using Mac)
- In the Print window, under the Settings option, click and then select Print Selection
- Click on the Print button.
The above steps would only print the selected range of cells in the selected sheets.
Also read: How to Set a Row to Print on Every Page in Excel
VBA Code to Print Multiple Sheets in Excel
If you want to do the printing in Excel using a VBA, you can use the various codes provided in this section.
When you run any of the VBA macros covered below, it will send the worksheets to your default printer for printing.
VBA Code to Print Active Worksheet Only
Sub PrintActiveWorksheet()
' Print the active worksheet
ActiveSheet.PrintOut
End Sub
The above VBA code would only print the active sheet (i.e. the tab that is active when running the code)
VBA Code to Print Entire Workbook
Sub PrintEntireWorkbook()
'Print the entire workbook
ThisWorkbook.PrintOut
End Sub
The above code would print all the sheets in the active workbook.
VBA Code to Print Specific Worksheets
In some cases, you may only want to print some of the sheets in your workbook.
In that case, you can use the VBA macro code given below, where I have specified the sheet names that I want to print.
Sub PrintSpecificSheetsByName()
Dim ws As Worksheet
'Print "Sheet1"
Set ws = ThisWorkbook.Worksheets("Sheet1")
ws.PrintOut
'Print "Sheet3"
Set ws = ThisWorkbook.Worksheets("Sheet3")
ws.PrintOut
End Sub
Here, I’m printing Sheet1 and Sheet3. You can adjust the code by specifying the names of the sheets you want to print
Also read: How to Fit to Page in Excel (Print on One Sheet)
VBA Code to Print Sheets with Specific Word/Phrase in the Tab Name
One useful scenario where VBA could be useful when printing sheets is when you want to print only those sheets that have specific words in the name.
For example, say I only want to print sheets where it has the word Sales in the name. The below VBA code would do that:
Sub PrintSheetsWithSpecificName()
Dim ws As Worksheet
Dim wsName As String
'Loop through each worksheet in the workbook
For Each ws In ThisWorkbook.Worksheets
'Convert worksheet name to lowercase and check if it contains the word "sales"
wsName = LCase(ws.Name)
If InStr(1, wsName, "sales") > 0 Then
'Print the worksheet
ws.PrintOut
End If
Next ws
End Sub
So these are the ways you can use to print multiple sheets in Excel. You can either use the inbuilt print options that are available in the print preview window, or the VBA macro codes.
I hope you found this tutorial useful!
You may also like the following Excel tutorials: