1) I want to replace this code with something less Selecty
WS.Columns("K:K").Select WS.Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select Selection.EntireColumn.Delete
2) But unless each WS is active then this sort of code fails anyway.
I think I've found a way to use ws.columns in my "Replace":
With WS.Columns("F:F") .Replace What:="DL", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End With