Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, 2016, 2019, and 2021. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Spreading Out a Table.
Written by Allen Wyatt (last updated November 18, 2025)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and 2021
Sometimes you may get a worksheet from someone else, and you need some room to work on the information provided. For instance, you may find it helpful to add some blank rows between each of the original rows in the original data. While this can be done rather easily using the Insert menu, it can quickly become tedious—particularly if you have a large number of rows that you want to spread out.
The following macro will help you tremendously in this situation. All you need to do is select the first row in the data. When you run the macro, it asks you how many blank rows you want to insert between the original rows. When you provide a number, the macro steps through the data and starts inserting blank rows. The macro stops when the first blank cell after the original data is detected.
Sub SpreadOut()
Dim iBlanks As Integer
Dim J As Integer
iBlanks = InputBox("How many blank rows?", "Insert Rows")
ActiveCell.Offset(1, 0).Select
While ActiveCell.Value > "" And iBlanks > 0
For J = 1 To iBlanks
Selection.EntireRow.Insert
Next J
ActiveCell.Offset(iBlanks + 1, 0).Select
Wend
End Sub
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (10005) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and 2021. You can find a version of this tip for the older menu interface of Excel here: Spreading Out a Table.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 365 applications with VBA programming. Written in clear terms and understandable language, the book includes systematic tutorials and contains both intermediate and advanced content for experienced VB developers. Designed to be comprehensive, the book addresses not just one Office application, but the entire Office suite. Check out Mastering VBA for Microsoft Office 365 today!
Want an easy way to insert a new row in a worksheet and copy everything from the row above? (You end up with two ...
Discover MoreExcel provides a few ways that you can freeze or split what you see in your worksheet. The appropriateness of these tools ...
Discover MoreYou can freeze information in rows or columns using one of the built-in features of Excel. As you move up or down in the ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2025-11-18 12:33:20
Dave Bonin
For a simple, one-time method, insert an extra column.
Then use Fill Down to fill the column with ascending integers.
Copy those new integers into the rows below the newly-filled.
Copy twice if you want two blank rows between each data row.
Three times for three blank rows, etc...
Your new column should have several sets of ascending integers.
Now use Sort to interleave the data rows and blank rows.
Then delete the column you added and viola, you're done!
2025-11-18 11:47:12
Barry
This doesn't work with Tables!!!
However I came up with this, (but there may be something better???):
Sub AddBlnkRowInTable()
'adds alternate blank rows into the whole table
Dim loTable As ListObject
Dim intCount As Integer
'*******change table name to suit******
Set loTable = ActiveSheet.ListObjects("Table2") '**
'count backwards to row 2 -- don't want blank in first row
For intCount = loTable.ListRows.Count To 2 Step -1
loTable.ListRows.Add intCount
Next intCount
End Sub
2025-11-18 08:17:34
Barry
@Ken Reed - I guess this is far too late for Ken but others might need it:
To adjust the height of just the added rows, insert the following code line below the line-- Selection.EntireRow.Insert:
Selection.RowHeight = 40
Adjust the '40' to the required height.
2021-05-22 19:14:53
Ken Reed
How can this macro be expanded to format the row height to be different from the original row height in the worksheet?
2021-05-22 08:51:42
Alan Cannon
I prefer to increase the row height, which doesn't add rows to the worksheet but still spreads out the data. This way the data can still be sorted if needed.
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2025 Sharon Parq Associates, Inc.
Comments