Today, you’ll learn how to print column headings in Microsoft Excel on every sheet of paper you print.
If youโve ever printed an Excel spreadsheet only to realize the column headings didnโt show up on every page, youโre not alone. Itโs like preparing a client report with no labels on the chartsโyou lose context, and the data becomes confusing.
Printing column headers in Excel may sound like a basic task, but figuring it out can feel surprisingly tricky, especially under a deadline. Iโve been there, and thatโs why I put together this simple, step-by-step guide. Youโll learn exactly how to make those headings stick. Letโs walk through it together, and by the end of the next section, youโll have it down.
Repeat Rows at Top (Page Layout)
The Rows to repeat at top feature in Excel lets you print the same row, usually your column headers, at the top of every printed page. Youโll find it in the Page Layout tool’s Sheet tab, and it works in most modern Excel versions, including Excel 2013, 2016, 2019, and Microsoft 365. This method is great because itโs quick, visual, and keeps your printed data clear and easy to read, especially in longer spreadsheets.
Now, let me show you the exact steps to achieve this below:

Open the Excel file you want to print and make sure your column headers are in the first row.
Click on the Page Layout tab in the ribbon at the top of Excel
Look for the Print Titles button in the Page Setup group and click on it.

Alternatively, you can click on the Sheet Options extension arrow or the Sheet Page Setup arrow. Its position has been marked in the screenshot given above.
A window called Page Setup will openโthis is where you get all fine-tuning options before printing your worksheets.

In the Sheet tab of that window, find the box labeled Rows to repeat at top.
Click inside that box, then click on the row number(s) that contain your headers (for example, click the row 1
to select it).
Excel will automatically insert something like $1:$1
. It means the row 1
is now set to repeat.
Click OK to save the setting and close the Page Setup window.
Now, go to File > Print (or hit Ctrl + P) and preview your printout to make sure the headers appear on every page. Scroll down on the Print Preview screen to cycle through pages.
If it looks good, go ahead and printโyour column headings will show up on every page, just the way they should.
One common challenge with this method is that it only works for rows, not columnsโso if your spreadsheet scrolls sideways instead of down, this wonโt help.
Also, if your headers arenโt in the first row, youโll have to adjust manually, which sometimes confuses. Because of these little bottlenecks, especially when youโre dealing with more complex layouts, itโs worth checking out the next method for more flexibility when it comes to selected section printing.
Using Print Area With Headers
Suppose you need to print small portions of the dataset but not the whole report. Here, you need to use the Print Area feature of Excel. Now, if you need column headers in all the small sections you’re printing, you can use the Header feature.
Itโs available in all modern Excel versions, from Excel 2013 to Microsoft 365. This method is preferable when you want full control over what prints, especially in large sheets where only a section needs to go on paper. However, it still includes the headers for clarity.
Let me walk you through the process below:

Open your Excel sheet and make sure your column headings are in the top row of the section you want to print.
Select an area you wish to print.
To select more than one print area, press Ctrl on the keyboard and then select the print areas throughout the worksheet.
Go to the Page Layout tab in the ribbon at the top of Excel
Click the Print Area drop-down menu in the Page Setup group.
Choose Set Print Area from the drop-downโExcel will now treat only that selection as printable.
To check if itโs working, go to File > Print or hit Ctrl + P to bring up the print preview.
Each print area will be printed on a separate sheet. So, scroll down on the Print Preview screen to find all the print areas you’ve created.

Now, go back to the source worksheet and copy the first row or the column header.

Click on the View tab. Select the Page Layout view command in the Workbook Views commands block.

Select the Header area at the top of the Page Layout view of the worksheet and paste the column headers there.

Now, click anywhere else on the worksheet except the Header and Footer area.

Now, press Ctrl + P and you should see the column headers show up in the header area of all the pages to be printed.
The column headers will be a bit left-aligned and not appropriately aligned with the data printed below.
To avoid misalignment, you can copy the column header or the first row in your dataset and paste that manually above each print area. You’ll have to readjust the print area since the pasted row doesn’t automatically get included in an existing print area.
The major drawback of the Print Area and Headers-based method is not fully aligned header and data rows. You can try out the next method to overcome this drawback when printing small chunks of data from a large dataset.
Using VBA Macro (Automate Header Printing)
So far, you have learned and practiced two manual methods to print column headings in Excel. Now, let me show you how you can automate the process using an Excel VBA macro. In this method, you don’t just automate the column header printing process but also introduce convenience and additional features to make the process efficient.
Firstly, read this quick Excel guide to learn the steps to create a macro from a VBA script:
๐ Read More: How To Use The VBA Code You Find Online
Once you’re ready to set up your first VBA macro, proceed with the steps mentioned below.
You can use this VBA script to create a macro:

Sub PrintWithHeadings()
Dim headingRange As Range
Dim userChoice As VbMsgBoxResult
Dim printRanges() As Range
Dim selectedRange As Range
Dim ws As Worksheet
Dim i As Integer
Dim promptMsg As String
Set ws = ActiveSheet
' Step 1: Select column heading
On Error Resume Next
Set headingRange = Application.InputBox("Select the column heading range to repeat on each page:", Type:=8)
If headingRange Is Nothing Then
MsgBox "No heading selected. Exiting script."
Exit Sub
End If
On Error GoTo 0
' Set print titles (row only)
With ws.PageSetup
.PrintTitleRows = headingRange.EntireRow.Address
.PrintTitleColumns = "" ' Optional: modify if you want columns repeated
End With
' Step 2: Ask user whether to print whole dataset
userChoice = MsgBox("Do you want to print the entire worksheet?", vbYesNoCancel + vbQuestion, "Print Option")
If userChoice = vbCancel Then Exit Sub
If userChoice = vbYes Then
ws.PageSetup.PrintArea = ""
ws.PrintOut
Exit Sub
End If
' If No, allow up to 4 range selections
ReDim printRanges(1 To 4)
For i = 1 To 4
promptMsg = "Select print range #" & i & " (Cancel to stop selecting):"
On Error Resume Next
Set selectedRange = Application.InputBox(promptMsg, Type:=8)
On Error GoTo 0
If selectedRange Is Nothing Then Exit For
Set printRanges(i) = selectedRange
Next i
' Print selected ranges with heading on each page
For i = 1 To 4
If Not printRanges(i) Is Nothing Then
ws.PageSetup.PrintArea = printRanges(i).Address
ws.PrintOut
End If
Next i
' Clear print area after done
ws.PageSetup.PrintArea = ""
End Sub
Here are the features and tasks that the VBA macro will accomplish automatically:

- Prompts you to select the column heading row using your mouse.

- Asks whether you want to print the entire worksheet or just specific sections.

- If you choose to print the entire worksheet:
- It includes the selected column headings on top of every printed page.
- It sends the entire worksheet to the printer.
- If you choose to print only specific sections:
- It gives you up to four chances to select different print ranges from the worksheet.
- You can cancel at any point, and it will proceed with whatever ranges you’ve selected so far.

- For each selected range:
- It sets that range as the print area.
- It prints the range with the selected headings appearing on each printed page.
- After printing, it clears the print area setting to avoid affecting future prints.

Press Alt + F8 to launch the Macro dialog box.
Select the PrintWithHeadings macro and hit Run.
Follow onscreen instructions to print column headings.

Find above any example of the PDF that I printed using this VBA script.
The script will print one large document if you select the whole dataset. Contrarily, if you choose small sections from the dataset, the script will print the selected sections in different sheets while adding the selected column heading at the top.
Conclusions
From now on, if anyone asks you how to print column headings in Microsoft Excel, you can present or explain any of the methods mentioned in this article.
If you liked the article or what I presented, share your acknowledgements, feedback, and comments in the comments block below.
0 Comments