Como aplicar e excluir filtro de dados usando VBA?

Filtro Excel VBA

A ferramenta Filtro VBA é usada para separar ou buscar os dados específicos desejados, a função Autofilter é usada como uma função de planilha, porém esta função possui outros argumentos que são opcionais e o único argumento obrigatório é a expressão que cobre o intervalo, por exemplo planilhas (“Folha1”). Faixa (“A1”). O filtro automático irá aplicar o filtro na primeira coluna.

O filtro no VBA funciona da mesma forma que na planilha. A única coisa diferente é que podemos automatizar a tarefa de rotina de filtrar os dados por meio da codificação.

AutoFiltro é uma função que inclui muitos valores de sintaxe. Abaixo estão os parâmetros envolvidos na função AutoFiltro.

  • O intervalo é a primeira coisa que precisamos fornecer para usar a opção “AutoFiltro”. Isso é simplesmente para qual intervalo de células precisamos aplicar o filtro, por exemplo, Range (“A1: D50”).
  • O campo é o primeiro argumento da função. Uma vez que o intervalo de células é selecionado através do objeto VBA RANGE, precisamos mencionar para qual coluna do intervalo queremos aplicar o filtro.
  • O critério 1 nada mais é do que no campo selecionado , qual valor você deseja filtrar.
  • O operador é usado caso você queira usar o argumento Critério 2 . Nesta opção, podemos usar as opções abaixo.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Visível dropdown é para exibir um símbolo de filtro na coluna do filtro aplicado ou não. Se você deseja exibir, pode fornecer o argumento como TRUE ou FALSE.

Exemplos para filtrar dados usando VBA

Exemplo # 1 - Aplicar ou remover filtro aos dados

Caso você queira aplicar a opção de filtro aos dados, podemos desligar e ligar esta opção. Por exemplo, observe a imagem de dados abaixo.

Etapa 1: fornecer intervalo de dados

Para ativar a opção de filtro primeiro, precisamos fornecer qual é o nosso intervalo de dados. Na imagem acima, nossos dados estão espalhados de A1 a G31, então forneça esse intervalo usando um objeto RANGE.

Código:

Sub Filter_Example () Range ("A1: G31") End Sub
Etapa 2: em seguida, acesse a função AutoFiltro

Agora acesse a função AutoFilter para este intervalo.

Código:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Etapa 3: execute o código para ativar o filtro

Isso é tudo. Execute este código para habilitar o filtro automático.

Este código funciona como um alternador e, se o filtro não for aplicado, ele será aplicado. Se já aplicado, ele será removido.

Exemplo # 2 - Filtrar valores específicos

Agora veremos como usar os parâmetros da opção AutoFiltro. Pegue os mesmos dados acima. Por exemplo, agora precisamos filtrar todos os nomes de gênero “Masculino”.

Etapa 1: Selecione Alcance e Abrir Função Autofiltro
Etapa 2: em seguida, selecione o campo

No primeiro argumento da função, ou seja, Field, precisamos mencionar a referência da coluna que gostaríamos de filtrar. Neste exemplo, precisamos filtrar apenas candidatos “Masculino”, que é a coluna “C”, portanto, o número da coluna é 3.

Etapa 3: Critérios de menção agora

Agora, para este campo fornecido, precisamos mencionar o critério 1 , ou seja, qual valor precisamos filtrar no campo mencionado . Precisamos filtrar “Masculino” nesta coluna.

Código:

Sub Filter_Example () Range ("A1: G31"). Campo AutoFilter: = 3, Criteria1: = "Masculino" End Sub
Etapa 4: e executar o código

Ok, isso é tudo. Este código irá filtrar apenas candidatos “masculinos” agora.

Exemplo # 3 - Uso do argumento OPERATOR

When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.

Step 1: Select Range and Autofilter Field

First, supply the Range of cells and fields.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub
Step 2: Enter Criteria 1 as Math

For the mentioned filed, we need to supply Criteria 1 as “Math.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub
Step 3: Use Operator xl

Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub
Step 4: Enter Criteria 2 as Politics

And for Criteria 2 argument mention the value as “Politics.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols

For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.

For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub

This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub

This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column

If you want to filter values from more than one column criteria, then we need to use a slightly different technique.

If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.

Code:

Sub Filter_Example() With Range("A1:G31") End With End Sub

Agora dentro da instrução WITH, forneça os primeiros critérios a serem filtrados.

Código:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" End With End Sub

Agora, na próxima linha, faça o mesmo para “País” alterando “Campo” para 6 e Critérios para “EUA”.

Código:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" .AutoFilter Field: = 6, Criteria1: = "US" End With End Sub

Agora, isso filtrará "Graduação" apenas para o país "EUA".

Coisas para lembrar

  • A primeira coisa primeiro apenas para o filtro de intervalo de células mencionado será aplicado.
  • O campo não é nada em qual coluna você deseja filtrar os dados.
  • No caso de filtrar valores de mais de uma coluna, use Com.

Artigos interessantes...