VBA AutoFilter

No VBA, você pode criar AutoFiltro para filtrar um intervalo de células ou uma tabela do Excel. Neste tutorial, você aprenderá como criar AutoFiltro para uma ou várias colunas e para várias condições.

Se você quiser aprender como usar um filtro avançado no VBA, clique aqui: Filtro avançado VBA

Criando AutoFiltro em VBA

Primeiro, você verá como apenas criar AutoFiltro em um intervalo, para que um usuário possa filtrar os dados. Os dados que usaremos nos exemplos estão na Imagem 1:

Imagem 1. Dados para exemplos de AutoFiltro

Aqui está o código para criar AutoFiltro:

1 Sheet1.Range ("A1: E1"). AutoFiltro

Para habilitar AutoFiltro, precisamos especificar o cabeçalho do intervalo, em nosso caso A1: E1, e usar o AutoFiltro método do objeto Faixa. Como resultado, nosso intervalo de dados tem filtros ativados:

Imagem 2. AutoFiltro habilitado para os dados

AutoFiltro com parâmetros de campo e critérios

O VBA também permite que você filtre automaticamente um determinado campo com determinados valores.

Para fazer isso, você deve usar parâmetros Campo e Criteria1 do método AutoFiltro. Neste exemplo, queremos filtrar a terceira coluna (produtos) para Produto A só. Aqui está o código:

12 Sheet1.Range ("A1: E1"). Campo do AutoFiltro: = 3, _Criteria1: = "Produto A"

No Campo parâmetro, você pode definir o número da coluna no intervalo (não no Excel), enquanto em Criteria1 você pode colocar o valor que deseja filtrar. Depois de executar o código, nossa tabela fica assim:

Imagem 3. AutoFiltro com campo e critérios

Como você pode ver, apenas linhas com Produto A na terceira coluna são exibidos no intervalo de dados.

AutoFiltro com valores de campo e vários critérios

Se você deseja filtrar um campo com vários valores, você precisa usar o parâmetro Operador do AutoFiltro método. Para filtrar vários valores, você precisa definir Operador para xlFilterValues e também colocar todos os valores de Critério em uma matriz. Neste exemplo, filtramos o produtos coluna para Produto A e Produto B. Aqui está o exemplo de código:

123 Sheet1.Range ("A1: E1"). Campo do AutoFiltro: = 3, _Criteria1: = Matriz ("Produto A", "Produto B"), _Operador: = xlFilterValues

Quando executamos o código, obtemos apenas linhas com o Produto A e o Produto B, como você pode ver na Imagem 4:

Imagem 4. AutoFiltro com vários valores de critérios

Intervalo de dados do filtro automático com vários critérios

Se você deseja filtrar um campo com vários critérios, você deve usar Criteria1 e Criteria2 parâmetros, mas também o Operador xlAnd.

No próximo exemplo, vamos filtrar a primeira coluna (Encontro) para datas em dezembro de 2022. Portanto, temos dois critérios: uma data maior que 01/12/18 e menor que 31/12/18. Este é o código:

1234 Sheet1.Range ("A1: E1"). Campo do AutoFiltro: = 1, _Criteria1: = "> = 12/01/2018", _Operador: = xlAnd, _Critério2: = "<= 31/12/2018"

Quando executamos o código, você pode ver que apenas as datas em dezembro são exibidas no intervalo de dados:

Imagem 5. AutoFiltro com vários critérios para o campo

Os valores dos parâmetros do operador do método AutoFiltro

Na próxima tabela. você pode ver todos os valores possíveis do Operador parâmetro do método AutoFilter e suas descrições:

Operador Descrição
xlAnd Inclui vários critérios - Critério 1 e Critério 2
xlOr Inclui um dos vários critérios - Critério 1 ou Critério 2
xlTop10Items Filtra um determinado número de valores com classificação mais alta (número especificado no Critério 1)
xlBottom10Items Filtra um certo número de valores com classificação mais baixa (número especificado no Critério 1)
xlTop10Percent Filtra uma certa porcentagem dos valores com classificação mais alta (% especificada no Critério 1)
xlBottom10Percent Filtra uma certa porcentagem dos valores com classificação mais baixa (% especificada no Critério 1)
xlFilterValues Inclui vários valores de critérios com Array
xlFilterCellColor Filtra células por cores
xlFilterFontColor Filtra células para cores de fonte
xlFIlterIcon Ícones de filtros
xlFilterDynamic Filtrar valores dinâmicos

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave