![](https://codky.com/wp-content/uploads/2024/11/2276-1024x576.png)
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.