Bob,
Without looping:
Sub Bob()
Range("D

").AutoFilter Field:=1, _
Criteria1:="=Completed", Operator:=xlOr, _
Criteria2:="=Cancelled"
Range("D2

65536").SpecialCells(xlCellTypeVisible).EntireRow.Delete
Range("D

").AutoFilter
End Sub
HTH,
Bernie
MS Excel MVP
"Bob" <(E-Mail Removed)> wrote in message
news:83E0B39C-49AA-49C0-9678-(E-Mail Removed)...
> I'm trying to write a macro that I can embed within an existing subroutine
> that will delete an entire row if the value in column D = "Completed" OR
> "Cancelled". Although the number of rows in the worksheet can vary from day
> to day (I download an updated worksheet from a system daily), I would prefer
> to use a macro that does not utilize looping (if possible). Instead, I
> already know the total number of rows containing data based on the following
> two lines of code:
>
> Dim iLastRow As Long
> iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
>
> Any help would be greatly appreciated. Thanks.
> Bob
>