Nosotros | Acceder | Web | Plantillas |

Cómo usar comodines en VBA


En el fascinante mundo de la programación en VBA de Excel, los comodines asterisco (*), signo de interrogación (?), numeral (#), corchetes [ ] o el signo de exclamación (!) son herramientas poderosas que nos permiten realizar búsquedas y operaciones de manera más eficiente y precisa. Estos símbolos actúan como 'comodines' que representan cualquier carácter, rangos de caracteres o conjunto de caracteres, lo que resulta especialmente útil al trabajar con datos variables al usar macros:

Un comodín es un símbolo que se utiliza para reemplazar uno o más caracteres en una cadena de texto. Por ejemplo, si tenemos la cadena de texto “ta*”, encontrará palabras como “tapa”, “tapir”, “talco”, “talla”, etc. En cambio, si usamos la cadena de texto “ta?”, solo encontrará la palabra “tap”, “tal”, ya que el comodín “?” sustituye a un solo carácter. El mundo de los comodines en Excel suele ser muy amplio si usamos combinaciones entre ellos:

Uso del comodín asterisco (*) en VBA

El comodín asterisco representa cualquier número de caracteres ya sea a la izquierda o a la derecha. Por ejemplo, supongamos que necesito conocer cuantas palabras terminan en una letra "a", dentro del grupo de palabras "Tapa", "Mandil", "Tasa", "Móvil", "Licuadora", "Tacos", "Cuchara", "Calzado", entonces la búsqueda sería "*a", el resultado sería sólo “Tapa”, "Cuchara", "Licuadora" y "Tasa" porque son las únicas palabras que terminan en una letra "a"

El código implementado a un bucle For sería:

Sub comodin_asterisco()
    Dim i As Integer
    uFILA = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To uFILA
      If Range("A" & i).Value Like "*a" Then
        Range("A" & i).Font.Color = vbRed
      End If
    Next i
End Sub
Obteniendo el resultado en una hoja de Excel cómo la que se muestra:


Como observas el comodín asterisco no le importa el número de caracteres que tenga la palabra, sino que simplemente cumple una misión de buscar una letra "a" al final de cada palabra y resaltarlo de color rojo. Teniendo este patrón podemos realizar múltiples combinaciones del asterisco con caracteres tanto a la izquierda y a la derecha.

Uso del comodín Interrogación (?) en VBA

El símbolo del signo de interrogación representa a un solo cifra, por ejemplo si usamos los mismos datos de la tabla anterior y deseamos buscar todas las palabras donde su penúltima cifra sea una letra "i" seguido de cualquier otro cifra final. Entonces la búsqueda sería "*i?". Cómo puedes observar usamos el asterisco para rellenar los caracteres que faltarían por la izquierda. El código quedaría de la siguiente manera:

Sub comodin_interrogacion()
    Dim i As Integer
    uFILA = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To uFILA
      If Range("A" & i).Value Like "*i?" Then
        Range("A" & i).Interior.ColorIndex = 8
      End If
    Next i
End Sub
Obteniendo el resultado como el que se muestra:


Cómo puedes observar en la imagen superior, las únicas palabras que contienen como penúltima cifra a la letra "i" son Mandil y Móvil las cuales les hemos aplicado un sombreado de color celeste con la propiedad   .Interior.ColorIndex. 

[Listas de caracteres] cómo comodín

Si usamos el o los ejemplos anteriores para usar cadena de caracteres permitidos vemos que se pueden modificar rápidamente para permitir utilizar el signo de interrogación, además de una lista de caracteres permitidos en un conjunto de palabras. Por lo tanto, la cadena comodín a utilizar puede modificarse a la siguiente expresión "*[a-i]?", donde el primer carácter asterisco busca cadenas de texto a la izquierda sin importar el número, el segundo tiene que ser un carácter entre "a" e "i" y la última letra será cualquier cosa "?".  El código a usar sería:

Sub comodin_listadecaracterespermitidos()
    Dim i As Integer
    uFILA = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To uFILA
      If Range("A" & i).Value Like "*[a-i]?" Then
        Range("A" & i).Interior.ColorIndex = 36
      End If
    Next i
End Sub
Resultando en la hoja de Excel:


Cómo observas las únicas palabras que tienen un caracter "a" o un caracter "i" se han sombreado de color amarillo gracias a la propiedad Interior.ColorIndex = 36

Comodín Numeral (#)

Similar al símbolo de interrogación, el símbolo del signo numeral representa a un solo dígito numérico, por ejemplo si usamos los mismos datos de la tabla anterior y deseamos buscar todas las cantidades que terminan en  "4". Entonces la búsqueda sería "#4". Quedando el código de la siguiente manera:

Sub comodin_numeral()
    Dim i As Integer
    uFILA = Hoja1.Range("B" & Rows.Count).End(xlUp).Row
    For i = 2 To uFILA
      If Range("B" & i).Value Like "#4" Then
        Range("B" & i).Font.Color = vbRed
      End If
    Next i
End Sub
Y de forma representativa en una hoja de Excel sería


En la imagen superior se aprecia que la búsqueda se hace en la hoja1,  y en la columna "B" resultado como resultado los números 24 y 34.

Comodín exclamación (!)

El comodín Exclamación excluye los caracteres incluidos entre los corchetes. Por lo tanto, la cadena comodín a utilizar puede modificarse a la siguiente expresión "*[!Co]?", donde el primer carácter asterisco busca cadenas de texto a la izquierda sin importar el número, luego los caracteres entre corchetes y entre ellos el signo de exclamación indica que los caracteres "Co" no se tomarán en cuenta en la búsqueda y la última letra será cualquier cosa "?". El código a usar sería:

Sub comodin_exclamacion()
    Dim i As Integer
    uFILA = Hoja1.Range("C" & Rows.Count).End(xlUp).Row
    For i = 2 To uFILA
      If Range("C" & i).Value Like "*[!Co]?" Then
        Range("C" & i).Font.Color = vbBlue
      End If
    Next i
End Sub
Y representado de forma ejecutada en la hoja1 de Excel sería:


En la imagen anterior vemos que las palabras que cumplen tal criterio de selección son simplemente tres.
Comparte este Artículo :

Publicar un comentario

 
Soporte : Privacidad | Términos y Condiciones | Cookies
Copyright © Desde el 2022. Dominando Ofimática - Derechos Reservados
Nuestros Proyectos Web Oficial Además de Nuestro Canal
Síguenos en TikTok