Hi
This question really should be a FAQ. I see it time and time again and looping just isn't the best way of doing this sort of thing.
Whenever you find yourself creating looping code stop and think is this really necessary? Most of the time it isn't. Loops are inherently slow when they have to jump back and forth between VBA and the Excel application - there's a big time overhead at each pass through the loop.
The fastest, most efficient and elegant way for this sort of stuff is to use an Autofilter to filter the rows you're interested in.
Then use syntax like
i.e.deal with a whole block of rows with one instruction rather than many as you process a loop
Untested in the absence of a workbook but something like
Change the row range as appropriate, or better still create a dynamic range name for the rows and use the range name
Bookmarks