How to Add a Row in Excel: Made Easy (2026)
You need a new row in the middle of your spreadsheet, right between two existing rows of data. Maybe you forgot to include an entry, or you are adding a new employee record above a specific department section. Whatever the reason, Microsoft Excel makes it simple. Right-click on the row number where you want the new row to appear, and select Insert from the context menu. Excel immediately pushes everything down and gives you a blank row to work with.
That covers the basic case, but there is a lot more to how to add a row in Excel when you need to insert multiple rows at once, add rows inside an Excel table, use the Name Box for bulk insertions, or automate the whole process with VBA code. Knowing the right method for each situation saves a significant amount of time, especially when working with large datasets that need frequent updates.
This guide covers every reliable method for adding rows in Microsoft Excel: the right-click shortcut, the Home tab ribbon, inserting multiple rows at once, using the Name Box, adding rows to an Excel table, the fill handle trick, keyboard shortcuts, and VBA automation. A troubleshooting section handles edge cases. Developers generating Excel files programmatically will find a short section at the end showing how IronXL handles row insertion in C# without any manual steps.
One thing worth knowing upfront: when you insert rows in Excel, all existing rows below the insertion point shift down automatically to make room. Any formulas that reference those rows update their cell references to stay accurate. There is no need to fix anything manually after inserting.
Method 1: Right-Click to Insert a Single Row (Fastest)
This is the method most people reach for, and it is the fastest path for inserting one new row.
-
Click the row number on the left side of the spreadsheet to select the entire row. For example, click row number 5 to select the whole fifth row.
- Right-click the selected row number.
- Select Insert from the right-click menu.
A new blank row appears above the row you selected. The selected row shifts down by one position, and all rows below it shift down as well. In the screenshot below, right-clicking row 5 in the employee data file and choosing Insert adds a new blank row 5, pushing the existing row 5 data down to row 6.

Add image alt text

Add image alt text
Pro tip: You can also right-click on any cell rather than the row number. In that case, Excel shows an Insert dialog box with four options: shift cells right, shift cells down, entire row, or entire column. The select shift cells options let you push existing cells in a specific direction rather than inserting a full row. Choose the entire row option from the small box and click OK to insert a full row above your active cell. For example, if you right-click on a cell in column C, choosing the entire row option still inserts a complete row across all columns, not just column C.
After inserting: Press F4 or Ctrl + Y to repeat the last action and insert another row immediately without going back through the right-click menu.
Method 2: Insert a Row Using the Home Tab
If you prefer working through the ribbon, the Home tab gives you the same result without right-clicking.
-
Click any cell in the row above which you want to insert a new row. For example, click cell A5 to insert above row 5.
-
Go to the Home tab in the ribbon.
-
In the Cells group, click the drop-down arrow on the Insert menu button.
- Select Insert Sheet Rows from the drop-down menu.
A new blank row appears above row 5, and all existing rows below shift down. The active cell moves to the new row automatically. In the screenshot below, with cell A5 selected, clicking Insert Sheet Rows from the Home tab creates a new row 5 while the original row 5 content moves to row 6.

Add image alt text
When to use this: The ribbon method is useful when already working in the Home tab and wanting to avoid navigating to the row number to right-click.
Method 3: Insert Multiple Rows at Once (Adjacent)
To insert multiple rows in one step rather than repeating the process, select the same number of existing rows as the number of new rows you want to add before inserting.
- Click the first row number you want to push down. For example, click row 5.
-
Hold Shift and click the last row number in your selection. To insert three blank rows, Shift-click row 7, selecting rows 5, 6, and 7.
- Right-click anywhere in the selected row numbers.
- Select Insert from the context menu.
Three new blank rows appear above row 5. The original rows 5, 6, and 7 shift down to rows 8, 9, and 10. Excel inserts the same number of blank rows as the number of rows you selected, and the existing cells in those rows move down automatically so your data automatically stays intact with no manual adjustment needed. Select two rows and you get two new rows. Select five and you get five. This works across all columns in excel, including when your spreadsheet spans multiple columns of data.

Add image alt text

Add image alt text
Using the keyboard to select multiple rows: Click the first row number, then hold Shift and press the Down Arrow key to extend the selection downward one row at a time. Once you have the desired number of rows selected, press Ctrl + Shift + + to insert without touching the mouse.
Method 4: Use the Name Box to Insert Multiple Rows Quickly
The Name Box at the top-left of the spreadsheet, just above column A, lets you select a precise range of rows by typing it directly. This is the fastest way to insert many rows at once without clicking through multiple row numbers.
-
Click the Name Box (the small box showing the current cell address, such as A1).
-
Type the row range you want to insert. For example, type 4:8 to select rows 4 through 8, which will insert five blank rows starting at row 4.
- Press Enter. Rows 4 through 8 are now selected as entire rows.
- Right-click anywhere in the selected rows.
- Choose Insert from the right-click menu.
Five new blank rows appear starting at row 4. All existing data from row 4 downward shifts down by five rows. In the screenshot below, typing 4:8 in the Name Box selects five entire rows at once, and after right-clicking and choosing Insert, five blank rows appear with the original data pushed down accordingly. The formula bar confirms the selected range as you type in the Name Box before pressing Enter.

Add image alt text
Why this method is useful: The Name Box approach avoids scrolling to find specific row numbers in large spreadsheets. When you know you need to insert 20 blank rows starting at row 100, typing 100:119 in the Name Box and pressing Enter selects all 20 rows instantly as a selected range, forming a new range in the spreadsheet after insertion. Pressing the ctrl key while clicking in the Name Box first clears the current address so you can type fresh without overwriting part of the existing reference.
Method 5: Keyboard Shortcut to Insert Rows
To add rows without touching the mouse at all, use the keyboard shortcut after selecting the desired number of rows.
- Click a row number to select the entire row. For example, click row number 5.
-
To select multiple rows, hold Shift and click additional row numbers, or use Shift + Down Arrow to extend the selection.
- Press Ctrl + Shift + + on Windows, or Cmd + Shift + + on Mac.
The key combination inserts the same number of blank rows as the rows you selected, pushing existing rows downward. If you selected a range of cells rather than full rows, Excel shows an Insert dialog. In that case, select Entire Row and press Enter to confirm.
Repeat the insert: After using the keyboard shortcut once, press F4 to repeat and insert another row in the same position. This is faster than pressing Ctrl + Shift + + again from scratch.
Using Alt for the ribbon menu: Press Alt on the keyboard, then H for Home tab, then I for Insert, then R for Insert Sheet Rows. This gives you full keyboard control through the ribbon without ever touching the mouse.
Method 6: Add Rows to an Excel Table
Excel tables (created with Ctrl + T) behave differently from regular spreadsheet ranges. When you insert rows inside a table, Excel applies the table formatting automatically, extends any structured references, and keeps the header row locked at the top. There are three ways to add rows to a table.
Option A: Right-click inside the table
Right-click any cell inside the table. Select Insert, then choose Table Rows Above to add a new row above the selected row, or Table Rows Below to add one below. The new row is automatically formatted to match the table style and any alternating row colors.
Option B: Type below the last row
Click the blank cell directly below the last row of the table in any column. Start typing a value and press Enter. The table expands automatically to include the new row, applying the table style and extending formulas. This is the fastest way to add rows at the bottom of an Excel table.
Option C: Resize the table using Table Design
Click anywhere inside the table to activate the Table Design tab in the ribbon. Click Resize Table and update the range to include additional rows. This is useful when you want to add a specific number of rows to the table at once.

Add image alt text
Important difference from regular rows: Inside an Excel table, the insert options show table-specific choices (Table Rows Above, Table Rows Below, Table Columns to the Left) instead of the standard row and column options. If you see the standard options instead, you clicked outside the table boundary. Click a cell clearly inside the table and try again.
Method 7: Use the Fill Handle to Insert Rows
Holding the Shift key while dragging the fill handle is a lesser-known method for inserting blank rows visually. The fill handle is the small green square in the bottom-right corner of a selected cell or range.
- Select the entire row you want to duplicate or the row above where you want to insert. Click the row number to select the whole row.
- Position your cursor over the fill handle (the small green square at the bottom-right corner of the row selection).
- Hold Shift and drag the fill handle downward by the number of rows you want to insert.
As you drag, two bars appear showing where the new rows will be inserted. Release the mouse and Excel inserts blank rows at that position. This method works best for inserting one or two blank rows quickly when working near the fill handle.

Add image alt text
Method 8: Insert Rows with VBA Code
For repetitive tasks or automation, VBA code lets you insert rows without any manual interaction. Using VBA code like Rows("5:5").Insert allows for advanced automation in inserting rows in Excel. This is useful when building tools that add rows based on conditions, process multiple sheets, or run on a schedule. For a fully programmatic alternative in .NET, IronXL's row insertion guide shows how to achieve the same result in C# without running Excel or writing any VBA.
Here's a basic VBA macro to insert a single new row above row 5:
Sub InsertSingleRow()
Rows("5:5").Insert Shift:=xlDown
End Sub
Sub InsertSingleRow()
Rows("5:5").Insert Shift:=xlDown
End Sub
Sub InsertSingleRow()
Rows("5:5").Insert(Shift:=xlDown)
End Sub
To insert multiple rows at once, specify a range:
Sub InsertMultipleRows()
Rows("5:8").Insert Shift:=xlDown
End Sub
Sub InsertMultipleRows()
Rows("5:8").Insert Shift:=xlDown
End Sub
Sub InsertMultipleRows()
Rows("5:8").Insert(Shift:=xlDown)
End Sub
To insert a new row at the last row of the data range dynamically:
Sub InsertAtLastRow()
Dim lastRow As Long
lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
Rows(lastRow + 1).Insert Shift:=xlDown
End Sub
Sub InsertAtLastRow()
Dim lastRow As Long
lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
Rows(lastRow + 1).Insert Shift:=xlDown
End Sub
Option Strict On
Sub InsertAtLastRow()
Dim lastRow As Long
lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
Rows(lastRow + 1).Insert(Shift:=xlDown)
End Sub
Press Alt + F11 to open the VBA editor, go to Insert > Module, paste the code, and press F5 to run it.

Add image alt text
When VBA is worth it: VBA becomes the right choice when inserting rows across dozens of sheets, building a tool that other users will run, or automating a data preparation task that runs weekly.
Common Issues and Troubleshooting
Insert is greyed out
The worksheet or workbook is protected. Go to Review > Unprotect Sheet and try again. A password may be required.
Inserted row does not match surrounding formatting
After inserting, a small Insert Options button appears at the left edge of the new row. Click it to choose whether to format like the row above, the row below, or clear formatting entirely. The clear formatting option resets the row to the default spreadsheet style, which is useful when you want to apply a completely different format manually. If the button does not appear, manually apply formatting from the Home tab.
Formulas are broken after inserting rows
Excel adjusts relative references automatically when rows shift. If a formula breaks, it likely uses absolute references with $ signs that now point at the wrong row. Review the formula and update the row number reference manually. In complex spreadsheets, adding a helper column next to your data with a row counter formula can make it easier to track which rows have been affected after multiple insertions.
Starting a new spreadsheet vs. inserting into an existing one
The different methods in this guide apply equally whether working in a new spreadsheet just created or inserting rows into an existing file with data already in it. The only difference is that an existing file may have additional constraints like table boundaries, protected ranges, or data validation rules on the data tab that restrict where rows can be inserted.
I inserted in the wrong place
Press Ctrl + Z immediately to undo. You can undo multiple times to return to the state before the insertion.
Non-adjacent row selection is not working
Hold Ctrl while clicking each additional row number to select rows that are not next to each other.
Choosing the Right Method: Quick Reference
| Goal | What to do | | --- | --- | | Insert one new row | Click row number, right-click, select Insert | | Insert using the ribbon | Select a cell, Home tab > Insert > Insert Sheet Rows | | Insert multiple rows at once | Select same number of rows, right-click, Insert | | Insert rows using keyboard only | Select rows, press Ctrl + Shift + + | | Insert rows via Name Box | Type row range (e.g. 4:8) in Name Box, Enter, right-click, Insert | | Add a row to an Excel table | Right-click inside table > Insert > Table Rows Above or Below | | Add a row at the bottom of a table | Click the cell below the last row and start typing | | Automate row insertion | Use VBA: Rows("5:5").Insert Shift:=xlDown |
For Developers: Insert Rows Programmatically with IronXL
If your application generates Excel files automatically, it will often need to add rows as part of building the output structure. IronXL provides InsertRow() and InsertRows() methods that let you insert rows in C# without Microsoft Office installed on the server. Existing rows shift down automatically, and cell references in formulas update to stay accurate.
Here's how to insert a single new row and multiple rows in an existing Excel file:
using IronXL;
WorkBook workBook = WorkBook.Load("employee_data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Insert one blank row before row 5 (zero-based index: row 5 = index 4)
sheet.InsertRow(4);
// Insert three blank rows before row 8 (zero-based index: row 8 = index 7)
sheet.InsertRows(7, 3);
// Populate the first new row with data
sheet["A5"].Value = "1151";
sheet["B5"].Value = "New Employee";
sheet["C5"].Value = "Smith";
sheet["D5"].Value = "newemployee.smith@company.com";
sheet["E5"].Value = "Engineering";
workBook.SaveAs("employee_data_updated.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("employee_data.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Insert one blank row before row 5 (zero-based index: row 5 = index 4)
sheet.InsertRow(4);
// Insert three blank rows before row 8 (zero-based index: row 8 = index 7)
sheet.InsertRows(7, 3);
// Populate the first new row with data
sheet["A5"].Value = "1151";
sheet["B5"].Value = "New Employee";
sheet["C5"].Value = "Smith";
sheet["D5"].Value = "newemployee.smith@company.com";
sheet["E5"].Value = "Engineering";
workBook.SaveAs("employee_data_updated.xlsx");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("employee_data.xlsx")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet
' Insert one blank row before row 5 (zero-based index: row 5 = index 4)
sheet.InsertRow(4)
' Insert three blank rows before row 8 (zero-based index: row 8 = index 7)
sheet.InsertRows(7, 3)
' Populate the first new row with data
sheet("A5").Value = "1151"
sheet("B5").Value = "New Employee"
sheet("C5").Value = "Smith"
sheet("D5").Value = "newemployee.smith@company.com"
sheet("E5").Value = "Engineering"
workBook.SaveAs("employee_data_updated.xlsx")
All row index positions in IronXL follow zero-based indexing. Row 1 in Excel is index 0, row 5 is index 4, and so on. InsertRow(4) inserts a blank row before the current row 5, pushing it and all rows below down by one. InsertRows(7, 3) inserts three blank rows before the current row 8.
For a full reference on all available row and column insertion methods, see the IronXL add rows and columns how-to guide and the InsertRow code example.
IronXL also handles reading and writing Excel data, cell formatting, formulas, and large workbooks without requiring Microsoft Office on the server.
Getting started: Install via NuGet with Install-Package IronXL.Excel and start your free trial. IronXL runs on .NET 6+ and is compatible with Windows, Linux, macOS, Docker, Azure, and AWS.
Wrapping Up
Adding rows in Excel is a task that comes up constantly across different scenarios, and the right method depends on how many rows you need and where they need to go. For a single row, right-clicking the row number and choosing Insert is the fastest path. To insert multiple rows in one step, select the same number of existing rows before right-clicking. The Name Box is the most efficient approach when you need to add many rows at a precise location in a large spreadsheet. For rows inside an Excel table, the table-specific Insert options keep your formatting and structured references intact.
A few things always hold true regardless of the method: existing rows shift down automatically when you insert, formulas adjust to stay accurate, and Ctrl + Z undoes any mistake instantly. For developers building Excel files in code, InsertRow() and InsertRows() in IronXL handle the whole process programmatically so your generated files arrive with the correct row structure from the start. The full reference is in the IronXL add rows and columns guide.




