Hi,

Why can't you simply use Data Filter Advanced (with a criteria range) to filter your data and then if you want to delete it use the SpecialCells(xlCellTypeVisible) syntax to delete the rows, or if copying just copy the filtered rows to the relevant sheet. This can be achieved with a couple of lines of code, e.g (untested)

Range("MyRange").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("MyCopyLocation"), CriteriaRange:=Range("MyCriteria")
Range("MyRange").CurrentRegion.Offset(1,0).SpecialCells(xlCellTypeVisible).EntireRow.Delete