try this change:
range(cell,rng).EntireRow.Delete
In fact, for testing, I like this:
range(cell,rng).EntireRow.Select
When it works, change .select to .delete
jerry chapman wrote:
I changed -- range(cells(cell,rng).EntireRow.Delete
to -- range(cells(cell,rng).EntireRow).Delete and I got an
error on the first out of order row. It appears that this code would only
delete the first out of order row (when it works). I would like to delete
all rows after the first out of order row. Presumably I could do that by
looping through the rest of the row and using the .Delete command (when it
is fixed);
"Tom Ogilvy" wrote in message
...
Dim rng as Range, cell as Range
set rng = Cells(rows.count,1).End(xlup)
set cell = range("A2")
do while cell.value < ""
if cell.Value < cell.offset(-1,0).Value then
range(cells(cell,rng).EntireRow.Delete
exit do
end if
set cell = cell.offset(1,0)
Loop
--
Regards,
Tom Ogilvy
"jerry chapman" wrote in message
...
I have an Excel file which is sorted ascending by column one. I would
like
to write a macro to verify that, and if I find a row which is out of
order
I
would like to delete that row and all subsequent rows. How could I do
that?
--
Dave Peterson