Use advancedfilter
em vez de autofilter
, pois ele pode manipular quantos critérios você quiser.
Aqui está um exemplo de trabalho. Configure sua planilha do Excel como se a primeira captura de tela estivesse mostrando e executando a macro.
Antes da macro
SubAdvancedFilterTest()'clearoldresultsandoldfiltersRange("C:C").Clear
Range("D:D").Clear
'criteria header name and data header name needs to be the same
[C1] = [B1]
'Split multiple criterias by semicolon and save them as array
Criterias = Split([A2], ";")
'write the array to cells since advancedfilter needs a range as criteria
For i = 0 To UBound(Criterias)
Cells(i + 2, 3) = Criterias(i)
Next i
'Set the cells as a range so advancedfilter can use them
Set critrange = Range(Cells(1, 3), Cells(UBound(Criterias) + 2, 3))
'advanced filter will filter and copy your data to a new target range
Range("B:B").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=critrange, CopyToRange:=Sheets(1).[D1]
End Sub
Após macro
Tenho certeza de que você terá a ideia e como adaptá-la.