How to remove blank or empty rows in Excel?

If there are hundreds of blank rows scattering through the whole worksheets, you will be frustrated about it. This tutorial is giving instructions on how to remove all the blank rows step by step.

Remove all the blank rows with Go To Special command

Remove all the blank rows with VBA code

Remove all the blank rows with only one click

Kutools for Excel: add 120 new features in Excel. Save one hour every day.
Classic Menu for Office: brings back classic menus to Office 2010 and 2013 (includes Office 365).
Office Tab: brings tabbed interface to Office as the use of web browser Chrome, Firefox and Internet Explorer.

arrow blue right bubble Remove all the blank rows with Go To Special command

Amazing! Using Tabs in Excel like Firefox, Chrome, Internet Explore 10!

1. Select the range containing blank rows you want to remove.

2. Click Home > Find & Select > Go To Special.


3. In the Go To Special dialog box, check the Blanks option.


4. And then click OK, all of the entire blank rows are highlighted. Then click Home > Delete > Delete Sheet Rows, the blank rows have been deleted from the selected range. See screenshots:


arrow blue right bubble Remove all the blank rows with VBA code

The following VBA code also can help you to delete the blank rows of the selected range. Please do as this:

1. Select the range that you want to remove the blank rows.

2. Click Developer > Visual Basic, a new Microsoft Visual Basic for applications window will be displayed, click Insert > Module, and input the following code into the Module:

VBA: Remove blank rows of the selected range.

Sub DeleteBlankRows()
'Update 20131107
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xRows = WorkRng.Rows.Count
Application.ScreenUpdating = False
For i = xRows To 1 Step -1
If Application.WorksheetFunction.CountA(WorkRng.Rows(i)) = 0 Then
WorkRng.Rows(i).EntireRow.Delete XlDeleteShiftDirection.xlShiftUp
End If
Application.ScreenUpdating = True
End Sub

3. Then click doc-merge-multiple-workbooks-button button to run the code. And the entire blank rows in the selection will be removed.

arrow blue right bubble Remove all the blank rows with only one click

You can use the third party add-in Kutools for Excel to quickly merge multiple columns. What is Kutools for Excel?

Kutools for Excel: with more than 120 handy Excel add-ins, free to try with no limitation in 30days. Get it Now.

1. Click Kutools > Delete Tools > Delete Blank Rows, see screenshot:


2. Then you can choose the scope to delete the blank rows. You can delete the blank rows in the selected range, in active sheet, in selected sheets and in all sheets of Excel. For more detail information about this utility, please visit here.

Tip: If there is a row which looks like a blank row but it contains invisible characters in its cells, this utility cannot delete such blank rows.

Kutools for Excel

More than 120 Advanced Functions for Excel 2013, 2010, 2007 and Office 365.

screen shot

btn read more     btn download     btn purchase


+2#ejohns742014-01-14 15:20
When I do this, the text gets deleted. Help please.
Reply | Reply with quote | Quote
+2#W. Halyn2014-03-11 12:20
Don't know if you've solved the issue about additional text getting deleted, but I've posted a solution to what might be your problem.
It's listed below your question.
Reply | Reply with quote | Quote
+9#W. Halyn2014-02-10 16:11
"Blank rows deletion" is awkward by most methods. I had a set of three columns of data. The first column had title lines every five or six rows. The remaining two columns had random data at various rows all the way down. Sometimes a row in column two was blank, but the cell beside it in column three had data. Or vice versa.
Only SOME of the rows (1,242 in this case) were blank all the way across.
The PROBLEM was that selecting BLANK cells would DELETE ENTIRE ROWS that had data in other columns.
I found a perfect solution.

I created a fourth column in which I used the COUNTA function.
The formula went =COUNTA(A1:C1) and then copied it down thru several thousand rows of data.
So, my D column had a stack of 3s,2s,1s & 0s.
Then I used the FILTER command on Column D to only show the rows that equalled 0. The result was a sheet of empty cells with 0s in column D... ONLY the totally blank rows had been selected!
Then I clicked and dragged down the left-side ROW NUMBERS (those in the margin) to select those rows, right-clicked and selected DELETE. They all vanished.
When I turned OFF the filter, I had a perfect set of cleaned data.
In less than a minute! Done!
= = = = = = =
That was so easy, I then got fancy and changed the COUNTA function to only select items from the A column that had data in them. (Those rows happened to be "Title" rows for clumps of data below them.) It read =COUNTA(A1) and copied IT down the D column to the end. The result was a column of 1s and 0s.
When I turned FILTER on again and selected for "1", only the Title rows appeared. I selected those rows and BOLDed them. Then turned the Filter off, and again, perfect formatting down thru thousands of lines.
Reply | Reply with quote | Quote
0#Tony_L2014-04-09 16:28
This is a great solution, thanks!
Reply | Reply with quote | Quote
+1#zahra2014-02-17 08:01
Thank you very much for the advice. It was great.
Reply | Reply with quote | Quote
+4#Ned2014-02-26 04:51
This is awesome.

Thank you very very very much

Reply | Reply with quote | Quote
+1#Daysha2014-03-10 21:57
You've just saved my life. :-)
Reply | Reply with quote | Quote
+1#Wasamut2014-03-10 23:57
The visual basic route was new to me and did the trick. Many thanks!
Reply | Reply with quote | Quote
+3#Jay2014-03-14 20:14
This is Cool!!! @ # W. Halyn. Thank You.
Reply | Reply with quote | Quote
0#Darko Loncar2014-03-17 09:04
I can't delete. I am using Excel 2010 and I want to delete blank rows from A147533 to (after ctrl - End) T448140.

What ever i did all rows stay undeleted in my spreadsheet. After ctrl-End I am again at T448140.
Reply | Reply with quote | Quote
0#W. Halyn2014-04-11 13:40
Your first step in the extra column (which should be "U" column for the filtering), the formula in U147533 should read (judging from your supplied data) =COUNTA(A147533:T147533) and then COPY that down to row 448140. You should get a column of numbers, SOME of which will be zeroes.
Then click on the "U" letter at the top of the column (in the ruler margin) to highlight the entire column.
Then select the Filter function (Data tab, Filter), click on the little pull-down triangle, and delete all the checkmark choices except the one beside the "0" choice (OR the "Blanks" choice, if visible). Click on OK.
You should then see only rows that have zero data in them.

Then as described previously, with the Filter function still active, highlight the rows from 147533 to 448140 that are containing those selected row numbers (by clicking/dragging down the left ruler margin OR clicking top one and shift-clicking last one), and DELETE them. (Right-click, Delete).
When they vanish, turn the Filter function off and all other data will reappear.
Good luck!
Reply | Reply with quote | Quote
0#Darko Loncar2014-04-18 08:18
It doesnt work for me. Now I am using EXCEL 2013 and have this situation : my data are in range A1 to AF52222. When I click
Ctrl-End I come to cell AG56367. So I have all blank rows from 52223 to 56367.
After COUNTA(a2;af2) copied to row 56367 and highlighting rows 52223 to 56376 on Right-click EXCEL offers DELETE ROW and I deleted this rows.
After that I turn off Filter: with Ctrl-Home I come to cell A1, with Crtl-End I come to cell AG56367. So all was the same
Reply | Reply with quote | Quote
0#mzmolek12014-03-28 08:43
I tried this but when I used Kutools function: delete tools > In Selected Range I get message: "Successfully deleted 0 rows" and nothing changes.
Reply | Reply with quote | Quote
0#W. Halyn2014-03-31 14:01
Instead of using Kutools, try the method I described above. It uses plain old Excel, using the features available in all recent versions.
(That's if you're trying to delete ONLY all-blank rows, not partially-blank ones.)
Reply | Reply with quote | Quote
0#outofmyleague2014-04-11 04:33
can you just do all of this with a macro to be executed at the bottom of a sheet once all the data is collected and analyzed? I am doing an "IF/THEN" analysis for some folks and sin=ce that works automatically the above solution, while elegant, may be beyond their capacity(maybe mine too ...) So, once the data is completed I was looking to point then to a cell and click "go" and the blank rows would be eliminated ..... any ideas?
Reply | Reply with quote | Quote
0#W. Halyn2014-04-11 13:13
It would take about ten times longer to write such a macro (which would have to auto-calc total columns, total vertical fill in ALL columns, then calc which column to do the counts in, then execute the operation, etc.) than to just do the steps.
Really, the whole operation takes less than two minutes if you read over the instructions step by step. Maybe try displaying steps side-by-side with the work you're doing (or print the steps out, then follow along). Once you see it work the first time, you'll feel a lot more comfortable with it, and you'll definitely be wiser in the operation of the Filter function.
Re the folks you're doing the work for, just bring them the results; they probably don't care "how", they just wanna know "what". A quickly-cleaned-up database will look more impressive than watching how it got that way, especially if you're just learning how. Give it a practice run or two. Oh, and make a backup copy, of course, just in case Undo fails or something while trying it out.
(Mind you, at your first query, I envisioned a macro that would have to work in all environments. What YOU would find is that once you've got a fixed-structure data set going, you'll know exactly how the procedure works and could just record steps into a macro of your own, just for the speed factor.)
Reply | Reply with quote | Quote
0#outofmyleague2014-04-11 04:28
Can you turn all of this into a macro that could be executed at the bottom of a spreadsheet when the data is fished being collected?
Reply | Reply with quote | Quote
0#Dana FitzGerald2014-04-16 00:40
Nice tutorial
--helped me greatly! Thanks!
Reply | Reply with quote | Quote

Add comment

Security code