Не зацикливаться.Для больших наборов данных это занимает очень много времени.
Не удаляйте по той же причине.
Вместо этого: фильтруйте, копируйте набор данных на новый лист, удаляйте старый лист.
Sub Macro1()
'
' Macro1 Macro
'
Dim mySheetname As String
Dim mySheetnameOld As String
Dim lastRow As Long
'Replace "Sheet1" with your sheet name.
mySheetname = "Sheet1"
mySheetnameOld = mySheetname & "_Old"
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Sheets(mySheetname).Name = mySheetname & "_Old"
' Add/remove your cell criteria to/from the filter array
Sheets(mySheetnameOld).Rows("1:" & lastRow).AutoFilter Field:=1, Criteria1:=Array( _
"Blue", "Green", "Red", "Yellow"), Operator:=xlFilterValues
Sheets.Add After:=Sheets(mySheetnameOld)
ActiveSheet.Name = mySheetname
Sheets(mySheetnameOld).Select
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Rows("1:" & lastRow).Copy Sheets(mySheetname).Cells(1, 1)
Application.DisplayAlerts = False
Sheets("Sheet1_Old").Delete
Application.DisplayAlerts = True
End Sub