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 a data table. While this can be done rather easily using the Insert menu, it can quickly become tedious—particularly if you have a large table 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 table. 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 table and starts inserting blank rows. The macro stops when the first blank cell after the original table 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 Excel in Office 365. You can find a version of this tip for the older menu interface of Excel here: Spreading Out a Table.
Save Time and Supercharge Excel! Automate virtually any routine task and save yourself hours, days, maybe even weeks. Then, learn how to make Excel do things you thought were simply impossible! Mastering advanced Excel macros has never been easier. Check out Excel 2010 VBA and Macros today!
Excel provides a few ways that you can freeze or split what you see in your worksheet. The appropriateness of these tools ...
Discover MoreImport data from another program, and you could end up with a lot of blank columns in your data. Here's the quickest way ...
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."
2014-07-28 08:25:26
Jeff C
Dave's solution works but the original tip allows for multiple rows to be inserted between each original row.
As Barry stated, I would avoid inserting rows like this. The undo stack shouldn't be a concern for a simple macro like this. You can always copy the worksheet before running it.
2014-07-26 10:04:19
Dave Onorato
No need to write a macro for this easy operation.
1. Insert a new "A" column. Put "asort" as a header field name
2. With autofill put odd numbers down the column, 1, 3, 5, 7,...
3. At the end of your data, note the end number, and continue numbering the A column, but with even numbers, 2, 4, 6, ... If your data ended with 157, then even number to 158.
4. Sort the table by the asort A column.
5. Delete the A column.
Fast, easy, no problematic code or macro, and totally undoable.
2014-07-26 05:25:06
Barry
I would prefer not to insert blank rows like this as subsequent "table" operations can get confused, and give misleading results.
I would suggest that increasing the row height would be a better way that can be simply done by selecting the whole table (select a cell in the table then press Crtl+Shift+8) then drag a row boundary in the row header bar to the desired height or right click in the row headers bar and select "Row Height....." and key the precise hieght you want then "OK".
Using the macro also deletes the "Undo" stack, which makes reversing the operation far more difficult.
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 © 2021 Sharon Parq Associates, Inc.
Comments