VBA AutoFilter - Como usar os critérios do VBA AutoFilter para filtrar dados?

Excel VBA AutoFilter

O AutoFiltro em VBA é usado como uma expressão e a sintaxe para ele da seguinte maneira Expressão. Autofiltro (campo, critério 1, operador, critério 2, lista suspensa) todos os argumentos são opcionais. O filtro é útil para filtrar os dados específicos dos dados enormes.

Suponha que você seja um usuário regular, então os filtros do Excel não são uma coisa estranha para você. Algumas das ferramentas que usamos na planilha também estão integradas ao VBA, e a opção de filtro automático é uma das ferramentas importantes disponíveis no VBA. Como todos sabemos, o filtro do Excel está disponível na guia de dados.

Usando esta opção de filtro, podemos brincar com os dados. Se você estiver lidando com uma quantidade mínima de dados e achar que a opção de filtro automático VBA não é realmente necessária, você pode continuar a usar a opção de filtro de planilha.

Se você estiver lidando com uma grande quantidade de dados, poderá usar a opção Autofilter para simplificar o fluxo do processo.

Sintaxe da função AutoFilter

O AutoFiltro no Excel VBA pode ser usado com um objeto de intervalo. Como nossas outras funções, esta também tem sua própria sintaxe.

  • Intervalo: o intervalo é simplesmente o intervalo em que você gostaria de aplicar o filtro.
  • Campo: Campo significa de qual coluna do intervalo você selecionou deseja filtrar os dados. Uma coluna será contada da esquerda para a direita.

Por exemplo, se o seu intervalo for de A1 a D100 e você quiser aplicar um filtro para a coluna D, o número do campo será 4 porque, no intervalo selecionado, D é a quarta coluna.

Critério 1: no campo, você selecionou o que deseja filtrar.

  • Operador: Se você deseja aplicar mais de um critério para filtrar os dados, então precisamos usar símbolos de operador. Alguns dos códigos de operadora são os seguintes.

xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.

Critério 2: qual é a segunda coisa que você deseja filtrar junto com o Critério 1?

  • Visível Drop Down: Você deseja exibir o ícone do filtro fop na coluna filtrada. Se você deseja exibir TRUE é o argumento, se não FALSE, é o argumento.

Como aplicar filtro usando VBA AutoFilter? (com exemplo)

Suponha abaixo os dados nos quais você está trabalhando.

Agora, usando o código VBA, vamos aplicar o filtro. Siga as etapas abaixo para aplicar o filtro.

Etapa 1: inicie o subprocedimento dando um nome à macro.

Código:

Sub AutoFilter_Example1 () End Sub

Etapa 2: a primeira coisa é em qual intervalo precisamos aplicar o filtro. Nesse caso, precisamos aplicar o intervalo de A1 a E25.

Código:

Sub AutoFilter_Example1 () Range ("A1: E25") End Sub

Etapa 3: uma vez que o intervalo foi selecionado, agora aplique a opção de filtro automático.

Código:

Sub AutoFilter_Example1 () Range ("A1: E25"). AutoFilter End Sub

Não estamos selecionando nenhum valor usando um filtro automático. Em vez disso, estamos apenas aplicando o filtro neste momento.

Execute o código usando a tecla F5, ou manualmente, ele irá inserir o filtro para o intervalo selecionado.

Portanto, aplicou um filtro aos dados. Agora veremos como filtrar os dados.

Exemplo # 1 - Filtrar dados usando o AutoFiltro

Considere os mesmos dados do exemplo acima. Agora precisamos filtrar o departamento “Finanças” da coluna de departamento.

Etapa 1: Após a aplicação do filtro, o primeiro argumento é para mencionar de qual coluna estamos filtrando os dados. Nesse caso, precisamos filtrar os dados da coluna Departamento, portanto, o número da coluna é 5.

Código:

Sub AutoFilter_Example1 () Range ("A1: E25"). Campo AutoFilter: = 5, End Sub

Passo 2: Critérios 1 é nada, mas o que queremos filtro da 5 ª coluna. Portanto, precisamos filtrar "Finanças".

Código:

Sub AutoFiltro_Exemplo1 () Intervalo ("A1: E25"). Campo AutoFiltro: = 5, Critérios1: = "Finanças" End Sub

Então isso é tudo, execute este código manualmente, ou através da tecla F5, ele irá filtrar apenas “Finanças” da lista.

Exemplo # 2 - Operador em AutoFiltro

Vimos como filtrar o valor único. Agora veremos como filtrar vários elementos. Suponha que junto com “Finanças” você deseja filtrar o departamento de “Vendas” também, então podemos fazer isso usando Operadores.

Etapa 1: depois de aplicar o primeiro critério no próximo argumento, selecione o operador como “xlOr.”

Código:

Sub AutoFiltro_Exemplo2 () Intervalo ("A1: E25"). Campo AutoFiltro: = 5, Critérios1: = "Finanças", Operador: = xlOr End Sub

Etapa 2: agora, no critério 2, mencione o valor como “Vendas”.

Código:

Sub AutoFiltro_Exemplo2 () Intervalo ("A1: E25"). Campo AutoFiltro: = 5, Critérios1: = "Finanças", Operador: = xlOr, Critérios2: = "Vendas" End Sub

Etapa 3: Ok, execute este código usando a tecla F5 ou manualmente, ele irá filtrar “Finanças” e “Vendas”.

No argumento Operador, usei “xlOr”, que selecionará “Finanças” e “Vendas” no filtro.

Exemplo # 3 - Filtrar números usando AutoFiltro

Using the Operator symbol “XlAnd,” we can filter out numbers as well. Assume from the Overtime column you want to filter out all the values which are>1000 but <3000.

Step 1: The first thing is changing the Field from 5 to 4.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4 End Sub

Step 2: Criteria 1 is>1000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4,Criteria1:=">1000", End Sub

Step 3: Here, we need to match both the criteria, so use “xlAnd” as the operator.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, End Sub

Step 4: Criteria 2 will <3000.

Code:

Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, Criteria2:="<3000" End Sub

Now, if you run this code manually or through the F5 key, it will filter out all the values from the Overtime column, which are>1000 but <3000.

Example #4 - Filter from Different Columns using AutoFilter

In order to filter out data from different columns, we need to use a different process. Assume you want to filter out the “Finance” department and also you want to filter out Salary numbers, which are>25000 but <40000.

You can use the below code does that.

Code:

Sub AutoFilter_Example4 () With Range ("A1: E25") .AutoFilter Field: = 5, Criteria1: = "Finance" .AutoFilter Field: = 2, Criteria1: = "> 25000", Operator: = xlAnd, Criteria2: = " <40000 "End With End Sub

Isso filtrará duas colunas.

Execute este código usando a tecla F5 ou você pode executá-lo manualmente.

Coisas para lembrar

  • Experimente diferentes combinações em Operador para obter o conhecimento do VBA AutoFilter.
  • Se você não tiver certeza do que inserir, tente usar o gravador de macro.
  • Se você quiser filtrar valores de texto, deverá fornecê-los entre aspas duplas.
  • Use a instrução WITH para aplicar mais de um filtro de coluna.

Artigos interessantes...