macro to clear rows
you need to reverse the loop. a for-next your way 'skips' a row when
deleting
think of it, let us suppose you test A400 which is zero. delete row 400, so
what was 401 becomes 400 and the 'next' part of the loop increments the
counter to 401. thus you simply misses what was 401.
Sub delete()
With ActiveSheet
For rwIndex = 200 to 1 STEP -1
If .Cells(rwIndex, 1).Value = 0 Then
Rows(rwIndex).delete
End If
Next rwIndex
End With
End Sub
Note that I moved the WITH statement outside the loo too...
--
Patrick Molloy
Microsoft Excel MVP
----------------------------------
"Peter H" wrote in message
...
Hi, I have a most likely easy question that is absolutely
stumping me.
Let's say I have two columns of data. Whenever the data
in columnA is zero, I want to delete (clear contents) that
entire row of data. Thus, if cell A40 was zero, B40 would
be deleted as well.
I don't even care of the rest of the data is shifted up
with a delete. My problem is that when I run the macro,
it misses a bunch of the zeros that it was supposed to
detect. Any help?
Here's what I'm working with:
Sub delete()
For rwIndex = 1 To 200
With ActiveSheet.Cells(rwIndex, 1)
If ((.Value) = 0) Then
Rows(rwIndex).delete
End If
End With
Next rwIndex
End Sub
|