Why does your printed report lose column headers after page 1? Why does Freeze Panes not solve it when you scroll down? Why does Page Setup look like it’s working — until you actually print or export to PDF?
Quick Answer
You repeat column headers on every printed page by setting them in Page Layout > Print Titles > Print Titles > Rows to repeat at top. This setting has zero effect on screen scrolling — only on printed or exported pages. If headers vanish mid-scroll, you need Freeze Panes instead (a completely separate feature).
All the Methods
| Method | Steps | Best For | Limitations |
|---|---|---|---|
| Print Titles (Rows to repeat at top) | Page Layout > Print Titles > Enter $1:$1 or $1:$2 in 'Rows to repeat at top' | Multi-page printouts and PDF exports | Does nothing for on-screen scrolling; doesn’t work with Excel Online’s print preview |
| Freeze Panes | View > Freeze Panes > Freeze Top Row (or select row 2 > Freeze Panes) | Long datasets you’re editing or reviewing on-screen | Headers don’t repeat in print/PDF unless combined with Print Titles |
| Copy-Paste Header Rows | Manually insert duplicate rows before each page break (e.g., copy A1:F1 → paste into A42:F42) | One-off reports where you control layout tightly | Breaks if data changes; no automatic updates; messes up filters and sorting |
| Table Format + Header Row | Select data > Ctrl+T > Check "My table has headers" → then use Print Titles | Dynamic lists with structured references | Table headers auto-repeat only if Print Titles is also set — tables alone don’t do it |
| VBA Macro (RepeatHeaderOnPrint) | Paste macro into editor (Alt+F11), assign to button, runs on demand | Teams printing dozens of similar reports weekly | Requires macro enablement; won’t run in Excel for Web or iOS |
Method 1 Deep Dive
Let’s say you’re tracking Q1 sales across 7 regions. Your data starts in A1 and spills down to row 127. You want “Region”, “Rep”, “Date”, “Amount”, and “Status” to appear at the top of every printed page.
First, highlight your header row — that’s A1:E1. Don’t include blank rows above it. Then go to Page Layout > Print Titles. In the dialog box, click inside the “Rows to repeat at top” field and type $1:$1. (Yes — dollar signs are required. No quotes. Just $1:$1.)
Now test it: press Ctrl+P to open Print Preview. Scroll through pages — headers now appear on every one. If your headers span two rows (say, merged title in row 1 + field names in row 2), enter $1:$2 instead.
Here’s what most people miss: this setting lives per worksheet. If you have tabs named “Q1 Data”, “Q2 Data”, and “Summary”, you must set Print Titles separately on each. And — here’s the counterintuitive bit — if your headers sit in row 3 because you’ve got a title and subtitle above them, you cannot use $3:$3 unless rows 1–2 are truly empty. Excel treats any non-blank cell above as part of the sheet’s ‘used range’, which can break the repeat logic. Delete those rows or clear contents (not just hide them) to be safe.
| Region | Rep | Date | Amount | Status |
|---|---|---|---|---|
| North America | Sarah Chen | 2024-03-15 | $45,200 | Closed |
| EMEA | Diego Ruiz | 2024-03-16 | $38,900 | Pending |
| APAC | Amina Patel | 2024-03-17 | $52,100 | Closed |
| Latin America | Mateo Silva | 2024-03-18 | $29,750 | In Review |
| North America | Jamal Wright | 2024-03-19 | $41,300 | Closed |
Method 2 Deep Dive
Freeze Panes is what you reach for when you’re analyzing — not printing. Say you’re auditing the same dataset in Sheet2, and you need to keep row 1 visible while scrolling past row 100.
Click any cell in row 2 — say, A2. Then press Alt+W+F (that’s Alt, then W, then F — three quick taps). Excel freezes everything above row 2, so row 1 stays put. Want to freeze both row 1 and column A? Select B2 first, then hit Alt+W+F.
Here’s the subtle trap: freezing row 1 does not make it print on every page. I’ve watched colleagues present a beautifully frozen dashboard — then hand out a 12-page printout with headers only on page 1. They were stunned. So remember: Freeze Panes = screen-only. Print Titles = paper/PDF only. Use both together when you need both behaviors.
Pro tip: if you accidentally freeze the wrong rows, hit Alt+W>F again — it toggles back to “Unfreeze Panes”. No hunting through menus.
Cheat Sheet
| Task | Shortcut or Action | Notes |
|---|---|---|
| Set headers to repeat on every printed page | Page Layout > Print Titles > Rows to repeat at top → enter $1:$1 | Use $1:$2 for two-row headers. Works only on physical/print/PDF output. |
| Keep top row visible while scrolling | Alt+W+F (with cell in row 2 selected) | If you select A1 first, Alt+W+F freezes nothing — always start from row 2 or below. |
| Unfreeze panes instantly | Alt+W>F | Same shortcut — toggles between freeze/unfreeze. |
| Check current Print Titles setting | Page Layout > Print Titles → look in the field | Blank means no repeat rows are set — even if headers appear frozen on screen. |
| Verify headers will print correctly | Ctrl+P → toggle through pages in Print Preview | Don’t trust the worksheet view — always preview before sending to printer or PDF. |