VanceLiving
New Member
- Joined
- Mar 5, 2013
- Messages
- 45
So, I understand you are limited to only 2 criteria in VBA when using an autofilter with "*contains*" text feature. My code using only two criteria is listed below.
I've looked for hours and can't find a workaround to somehow filter with more than 2 criteria. It seems an Advanced Filter should be used but I can't determine how to develop the proper code to make it work. Any suggestions would be greatly appreciated! Thank you in advance for your consideration!!
I've looked for hours and can't find a workaround to somehow filter with more than 2 criteria. It seems an Advanced Filter should be used but I can't determine how to develop the proper code to make it work. Any suggestions would be greatly appreciated! Thank you in advance for your consideration!!
Code:
ActiveSheet.Name = "zCHAC_CHOS"
Sheets("zCHAC_CHOS").Move After:=Sheets("SMFs")
Set wksData = ThisWorkbook.Sheets("zCHAC_CHOS")
With wksData
lngLastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
lngLastCol = .Cells.Find(What:="*", LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Set rngDataBlock = .Range(.Cells(1, 1), .Cells(lngLastRow, lngLastCol))
End With
Application.DisplayAlerts = False
With rngDataBlock
.AutoFilter Field:=6, Criteria1:="<>*CHAC*", Operator:=xlAnd, Criteria2:="<>*CHOS*"
.Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Rows.Delete
End With
Application.DisplayAlerts = True
With wksData
.AutoFilterMode = False
If .FilterMode = True Then
.ShowAllData
End If
End With