I have a macro that deletes unwanted rows from a worksheet. The macro
works fine when applied to each worksheet individually, when I attempt
to loop in all worksheets it only deletes the rows in the first
worksheet.

Sub Delete_Rows()
' This macro deletes specified rows on the active worksheet

Dim rng As Range, cell As Range, del As Range

For Each ws In ActiveWorkbook.Worksheets
ws.Activate
If ws.Name <> "Summary" And ws.Name <> "Reference" Then
Set rng = Intersect(Range("C6:C600"), ActiveSheet.UsedRange)
For Each cell In rng
If (cell.Value) = "USD" _
Or (cell.Value) = "USD Total" _
Or (cell.Value) = "KEY" _
Or (cell.Value) = "EUR" Then
If del Is Nothing Then
Set del = cell
Else: Set del = Union(del, cell)
End If
End If
Next
On Error Resume Next
del.EntireRow.Delete
End If
Next
End Sub

Does anyone have a solution.