ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Deleting blank rows (https://www.excelbanter.com/excel-programming/321293-deleting-blank-rows.html)

Michael Chang

Deleting blank rows
 
Hi,

I am writing a macro to delete the entire row if all the cells are blank.
For example, in a range which 10 rows by 3 columns. Data in the first column
is 2 rows deep, 2nd column - 1 row, 3rd column - 3 rows. I want the macro
to delete rows 4 through to 10.

This is what I tried:

Dim c As Range
Dim myString As String

For Each c In Range("A1:A10").Cells
myString = c & c.Offset(0, 1) & c.Offset(0, 2)
If Len(myString) = 0 Then
c.EntireRow.Delete
End If
Next c

What happens is that only half the blank rows are deleted. It seems as
though after the first row is deleted 'Next c' skips a row. What am I doing
wrong?

Regards,
Michael



Tom Ogilvy

Deleting blank rows
 
Dim c As Range
Dim myString As String
Dim i as Long

For i = 10 to 1 step -1
set c = Cells(i,1)
myString = c & c.Offset(0, 1) & c.Offset(0, 2)
If Len(myString) = 0 Then
c.EntireRow.Delete
End If
Next c

--
Regards,
Tom Ogilvy

"Michael Chang" wrote in message
...
Hi,

I am writing a macro to delete the entire row if all the cells are blank.
For example, in a range which 10 rows by 3 columns. Data in the first

column
is 2 rows deep, 2nd column - 1 row, 3rd column - 3 rows. I want the macro
to delete rows 4 through to 10.

This is what I tried:

Dim c As Range
Dim myString As String

For Each c In Range("A1:A10").Cells
myString = c & c.Offset(0, 1) & c.Offset(0, 2)
If Len(myString) = 0 Then
c.EntireRow.Delete
End If
Next c

What happens is that only half the blank rows are deleted. It seems as
though after the first row is deleted 'Next c' skips a row. What am I

doing
wrong?

Regards,
Michael





Mike Fogleman

Deleting blank rows
 
Delete from the bottom, up.

Mike F
"Michael Chang" wrote in message
...
Hi,

I am writing a macro to delete the entire row if all the cells are blank.
For example, in a range which 10 rows by 3 columns. Data in the first

column
is 2 rows deep, 2nd column - 1 row, 3rd column - 3 rows. I want the macro
to delete rows 4 through to 10.

This is what I tried:

Dim c As Range
Dim myString As String

For Each c In Range("A1:A10").Cells
myString = c & c.Offset(0, 1) & c.Offset(0, 2)
If Len(myString) = 0 Then
c.EntireRow.Delete
End If
Next c

What happens is that only half the blank rows are deleted. It seems as
though after the first row is deleted 'Next c' skips a row. What am I

doing
wrong?

Regards,
Michael






All times are GMT +1. The time now is 11:58 PM.

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