Excel VBA Sub Routine is extremely Slow deleting a Range
COUNTIF() is slow.  A few COUNTIF() statements in a worksheet can be okay, but thousands of them will result in a glacial spreadsheet.

Here is a way to replace your COUNTIF() statements:


Sort Column A.
In Column B, have each cell check if the corresponding cell in column A is equal to the cell above it in column A.  If no, put 1 in column B's cell.  If yes, set column B's cell equal to 1 + the value in the cell above it in column B.
In Column C, have each cell check if the corresponding cell in column A is equal to the cell below it in column A.  If yes, let the cell in column C be an empty string.  If no, set column C's cell equal to column B's cell.
(Optional)  In Column D, have each cell check if the corresponding cell in column C is an empty string.  If no, set column D's cell equal to column C's cell.  If yes, set column D's cell equal to the cell below it in column D.