Autofilter can handle quite a few criteria, but you have to pass them as an array to Criteria1. As an example:
Private Function PSIDDupeCheck(ByRef wkBook As Workbook, _
ByRef wkSheet As Worksheet, _
ByVal wkColumn As Long, _
ByRef exceptArray() As String, _
ByRef sendDate As String, _
ByVal errorSrc As String, _
Optional ByVal param1 As String, _
Optional ByVal param2 As String, _
Optional ByVal param3 As String, _
Optional ByVal param4 As String) As String
' Set AutoFilter to screen out non-compared objects
.AutoFilter Field:=wkColumn, Criteria1:=Array( _
wkSheet.AutoFilterMode = False
Although I thought it would be the same if I changed some data it it not. Sorry to be bothering you about this but could you make this work?
Const sVals As String = "=SA*,=PRIAC*,=BAT,=COMFUT,=DCP,=GICFUND,=GISACOMM," _
& "=GPSA, =GMSA, =GRPAN, =HICKORY, =IADEF, =IAPAY," _
& "=PARCC, =PARCCORP, =PARTCORP, =PARTCUST, =PARU, =PARUNJTR1, =PLAZTR1, =PLAZTR2, =PLNJMM, =PLNJTR1, =PLNJTR2, =PLUSUSD, =PPBO, =PRIVEST, =PRIVESTPLUS, =SEA, =SEASIADCP2, =UPARCC," _
& "=UPLAZTR1, =UPLAZTR2"
aVals = Split(sVals, ",")
Range("R1").Value = Range("A1").Value
With Range("R2").Resize(UBound(aVals) + 1)
.NumberFormat = "@"
.Value = WorksheetFunction.Transpose(aVals)
Range("A1:Q5000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("R1").Resize(UBound(aVals) + 2), Unique:=False
What is happening is that it is filtering some values but not all of them? And my spelling is correct.