To avoid errors, never delete and shift rows when you are in a loop from top to bottom. You only delete rows from bottom to top.
Suppose you have to process rows 5 and 6, you process row 5 ,delete and shift making row 6 becoming row 5. Since you have already delt with row 5 in your loop you move on to row 6 so forgetting to process the former row 6.
It is therefore better to just clear the contents of the processed rows and in the end delete all the blank cells in columns 1 using Special cells.
Also it isn't necessary to select a sheet to perform a sorting action. Use With .... End With instead.
Bookmarks