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.
Sintaxis básica
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».