Como usar a função Filtro no VBA?

No VBA (Visual Basic for Applications), a função `Filter` é utilizada para retornar uma matriz baseada em critérios específicos de filtragem que você define. Essa função não é usada para filtrar dados em uma planilha, mas sim para manipular arrays no VBA. A função `Filter` pode ser extremamente útil para trabalhar com listas de dados armazenadas como arrays. Vou explicar como você pode usar essa função.

Sintaxe

Filter(SourceArray, Match[, Include[, Compare]])
  • `SourceArray`: Obrigatório. O array unidimensional a ser filtrado.
  • `Match`: Obrigatório. A string a ser procurada dentro dos elementos de `SourceArray`.
  • `Include`: Opcional. Um valor booleano que determina se você deseja retornar uma matriz de elementos que contêm (`True`) ou não contêm (`False`) a string de `Match`. O valor padrão é `True`.
  • `Compare`: Opcional. Define a comparação a ser usada. Use `vbBinaryCompare` para uma comparação binária ou `vbTextCompare` para uma comparação textual. O padrão é `vbBinaryCompare`.

Exemplo de Uso

Aqui está um exemplo simples de como usar a função `Filter` no VBA:

Sub ExemploFilter()
    Dim nomes As Variant
    Dim nomesFiltrados As Variant
    Dim i As Integer
    
    ' Definindo um array de exemplo
    nomes = Array("Ana", "Bruno", "Carlos", "Beatriz", "Fernando", "Bianca")
    
    ' Usando a função Filter para encontrar todos os nomes que contêm "B"
    nomesFiltrados = Filter(nomes, "B", True, vbTextCompare)
    
    ' Checando se há resultados e exibindo
    If Not IsEmpty(nomesFiltrados) Then
        For i = LBound(nomesFiltrados) To UBound(nomesFiltrados)
            Debug.Print nomesFiltrados(i)
        Next i
    Else
        Debug.Print "Nenhum nome encontrado."
    End If
End Sub

Explicação do Código

  • Declaração de Variáveis: `nomes` é o array que contém uma lista de nomes. `nomesFiltrados` será o array de resultados após a aplicação do filtro.
  • Definição do Array: Um array chamado `nomes` é criado com vários nomes.
  • Uso da Função Filter: A função `Filter` é utilizada para obter um novo array (`nomesFiltrados`) que contém apenas os elementos de `nomes` que possuem a letra “B”.
  • Exibição dos Resultados: Caso `nomesFiltrados` não esteja vazio, ele exibe os nomes filtrados na Janela de Depuração do VBA. Se estiver vazio, imprime “Nenhum nome encontrado”.

Esse exemplo básico demonstra como a função `Filter` pode ser usada para extrair entradas de um array que correspondem a um critério específico. Ajuste `Match` e `Compare` conforme necessário para se adequar ao seu caso de uso.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project