Vba: como usar o filtro automático com vários critérios
Você pode usar os seguintes métodos para usar o AutoFiltro no VBA com vários critérios:
Método 1: use o AutoFiltro com vários critérios em uma única coluna
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
Esta macro específica irá filtrar todas as linhas no intervalo A1:C11 onde o valor da primeira coluna é igual a “A” ou “C”.
Método 2: use o AutoFiltro com vários critérios em várias colunas
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
Esta macro específica irá filtrar o intervalo A1:C11 para mostrar apenas as linhas onde a primeira coluna é igual a “A” e a segunda coluna é igual a “Guarda”.
Os exemplos a seguir mostram como usar cada um desses métodos na prática com o seguinte conjunto de dados no Excel:
Exemplo 1: Use o AutoFiltro com vários critérios em uma coluna
Digamos que queremos filtrar o conjunto de dados para mostrar apenas as linhas cuja primeira coluna seja igual a “A” ou “C”.
Podemos criar a seguinte macro para fazer isso:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=Array(" A ", " C "), Operator:=xlFilterValues
End With
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Observe que o conjunto de dados foi filtrado para mostrar apenas as linhas com a primeira coluna igual a “A” ou “C”.
Observação : incluímos apenas dois valores possíveis na função Array() , mas fique à vontade para incluir quantos desejar.
Exemplo 2: Use filtro automático com vários critérios em várias colunas
Digamos que queremos filtrar o conjunto de dados para mostrar apenas as linhas onde o valor da coluna Equipe é igual a A e o valor da coluna Posição é igual a Guarda.
Podemos criar a seguinte macro para fazer isso:
Sub FilterMultipleCriteria()
With Range(" A1:C11 ")
.AutoFilter Field:=1, Criteria1:=" A "
.AutoFilter Field:=2, Criteria1:=" Guard "
End With
End Sub
Quando executamos esta macro, recebemos a seguinte saída:
Percebi que o conjunto de dados foi filtrado para mostrar apenas as linhas onde o valor na coluna Equipe é igual a A e o valor na coluna Posição é igual a Guarda.
Nota : Você pode encontrar a documentação completa do método VBA AutoFilter aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como filtrar tabelas dinâmicas
VBA: Como limpar filtros
VBA: como remover valores duplicados