Another way (uses no loops)...
This method does have a restriction of no more than 8192 individual ranges (areas) of rows (contiguous rows count as one area) meeting your conditions for deletion. That means you can have at least 16394 rows of data before the code might give you trouble.Code:Sub DeleteThreesAndTargets() Dim LastRow As Long, UnusedColumn As Long LastRow = Cells(Rows.Count, "C").End(xlUp).Row UnusedColumn = Cells.Find(What:="*", SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, LookIn:=xlFormulas).Column With Range(Cells(1, UnusedColumn), Cells(LastRow, UnusedColumn)) .Value = Evaluate("IF((C1:C" & LastRow & "=3)*(AA1:AA" & _ LastRow & "=""target""),C1:C" & LastRow & ","""")") On Error Resume Next .SpecialCells(xlConstants).EntireRow.Delete On Error GoTo 0 End With End Sub




Reply With Quote

Bookmarks