|The main trick to deleting Rows via VBA is to delete the rows from the bottom up. If you try to delete them from the top down, the counter gets all messed up.|
e.g. Let's say you check each row by counting 1, 2, 3, 4, etc. If A3 contains a Date and you delete Row 3, then Row 4 becomes Row 3 and what used to be in A4 is now in A3. However, your counter has already incremented to 4, so the value that is now in A3 (formally A4) never gets checked.
If you check each row by counting 4, 3, 2, 1 then you can delete Row 3 with no other impact because A4 has already been checked.
'Determine last row with data in Sheet1 Column A
lastRw = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
'Loop through Rows in reverse order
For nxtRw = lastRw To 1 Step -1
'Check for date
If IsDate(Range("A" & nxtRw)) Then
'Delete the row
Range("A" & nxtRw).EntireRow.Delete
Click Here Before Posting Data or VBA Code ---> How To Post Data or Code.