ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Easy Question (https://www.excelbanter.com/excel-programming/383884-easy-question.html)

Posse John

Easy Question
 
I need to check each row of a database to ensure it is not blank (this is
performed after importing data from an external source).

If the cell is blank, I need to delete the entire row.

The problem I'm having is if two blank rows are next to each other. The
routine I use does not delete the second row, because of the deletion of the
first one.

How do I 'reset' the variable to the row before the deletion, so that the
routine catches the second blank row?

For Each cl In Range("A2:A" & Range("A65500").End(xlUp).Row).Cells
If cl = Empty Then
cl.EntireRow.Delete
End If
Next


Spencer

Easy Question
 
Try this statement to delete instead.

SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp

"Posse John" wrote:

I need to check each row of a database to ensure it is not blank (this is
performed after importing data from an external source).

If the cell is blank, I need to delete the entire row.

The problem I'm having is if two blank rows are next to each other. The
routine I use does not delete the second row, because of the deletion of the
first one.

How do I 'reset' the variable to the row before the deletion, so that the
routine catches the second blank row?

For Each cl In Range("A2:A" & Range("A65500").End(xlUp).Row).Cells
If cl = Empty Then
cl.EntireRow.Delete
End If
Next


Mike

Easy Question
 
Select your data range and run this

Sub Button1_Click()
Dim i As Long
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
For i = Selection.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
Selection.Rows(i).EntireRow.Delete
End If
Next i
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With

End Sub

"Posse John" wrote:

I need to check each row of a database to ensure it is not blank (this is
performed after importing data from an external source).

If the cell is blank, I need to delete the entire row.

The problem I'm having is if two blank rows are next to each other. The
routine I use does not delete the second row, because of the deletion of the
first one.

How do I 'reset' the variable to the row before the deletion, so that the
routine catches the second blank row?

For Each cl In Range("A2:A" & Range("A65500").End(xlUp).Row).Cells
If cl = Empty Then
cl.EntireRow.Delete
End If
Next


Posse John

Easy Question
 
Thank you both...didn't know about the 'specialcells' function. NICE.

Ended up using:
Columns("A:A").SpecialCells(xlCellTypeBlanks).Enti reRow.Delete



All times are GMT +1. The time now is 12:15 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com