why is my loop so slow?

  • Thread starter Thread starter Buffyslay
  • Start date Start date
B

Buffyslay

what i need to do is delete any rows where col b = 0 or 2?


For conCat2 = 2 To iCountA
If ActiveCell.Value = 2 Then
ActiveCell.EntireRow.Delete
ElseIf ActiveCell.Value = 0 Then
ActiveCell.EntireRow.Delete

Else
ActiveCell.Offset(1, 0).Activate
End If
Next
 
well, there are much better ways to do it (bottom)
but for starters, turn off screen updating before you run it.. that's one of
the most time intensive tasks for VBA is updating the screen.

application.screenupdating = false

after the loop turn it back on

application.screenupdating = true

that in itself will help you tremendously.


***
to streamline it, you could sort by column b first then you know all the
rows are together as well.
typically if I do something like that but want to preserve my original
order, I'll add an order column before any work is done..
 
Back
Top