I don't think you can't use a non-contigous range to filter by, all your ranges are non-contiguous.
Also, none of them include the header.
Perhaps you should copy the criteria to another range and then filter by that.
Dim rData As Range, rCrit As Range
Set rData = Intersect(Sheet1.UsedRange, Range("B:B"))
Set rCrit = Sheet1.Range("FirstNamedRange")
rCrit.Copy
With Range("L1")
.Value = Range("B1").Value
.Offset(1).PasteSpecial xlPasteAll, SkipBlanks:=True
Set rCrit = .Item(1).Resize(rCrit.Cells.Count + 1)
End With
rData.AdvancedFilter xlFilterInPlace, rCrit
Bookmarks