
Contenido
La función `Filter` en VBA se utiliza para filtrar una matriz de cadenas en función de un valor de filtro especificado. Esta función devuelve una matriz que contiene solo los elementos que coinciden con el valor de filtro proporcionado.
Aquí tienes la sintaxis general de la función `Filter`:
Filter(SourceArray, Match, [Include], [Compare])
- `SourceArray`: Es la matriz origen que contiene las cadenas de texto que quieres filtrar.
- `Match`: Es la cadena que estás buscando dentro de los elementos del `SourceArray`.
- `Include`: Es un valor booleano que determina si debe incluirse (`True`) o excluirse (`False`) el criterio de coincidencia. Por defecto, es `True`.
- `Compare`: Un valor opcional que especifica el tipo de comparación (binaria o textual). El valor `vbTextCompare` (1) para una comparación no sensible a mayúsculas y minúsculas, o `vbBinaryCompare` (0) para una comparación sensible a mayúsculas y minúsculas.
Aquí hay un ejemplo sencillo de cómo puedes usar la función `Filter` en VBA:
Sub EjemploFilter()
Dim palabras() As String
Dim resultado() As String
Dim i As Integer
' Inicializar la matriz de cadenas
palabras = Split("manzana,banana,kiwi,manzana,frambuesa", ",")
' Filtrar para encontrar todas las instancias de "manzana"
resultado = Filter(palabras, "manzana", True)
' Imprimir los resultados
For i = LBound(resultado) To UBound(resultado)
Debug.Print resultado(i)
Next i
End Sub
Este código filtrará las palabras y te devolverá una matriz que solo contiene la palabra «manzana». El resultado en la ventana inmediata de VBA (que se muestra al presionar `Ctrl+G` en el editor de VBA) debería ser dos líneas con la palabra «manzana».
Recuerda que la función `Split` se utiliza aquí para crear una matriz `palabras` a partir de una cadena, donde cada palabra está separada por comas.
Otro ejemplo podría ser excluir las coincidencias del filtro, es decir, obtener un resultado que contenga todos los elementos de la matriz que no coinciden con el valor especificado:
' Filtrar para excluir todas las instancias de "manzana"
resultado = Filter(palabras, "manzana", False)
Este código te devolverá una matriz que contiene todas las cadenas que no son «manzana».