VBA – Comodines

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on diciembre 21, 2022

Este tutorial demostrará cómo utilizar comodines en VBA.

Los comodines se utilizan en todos los lenguajes de programación y aplicaciones de bases de datos como SQL Server. Un comodín se puede definir como un símbolo que se utiliza para reemplazar uno o más caracteres en una cadena de texto. Por ejemplo, esta cadena de texto – «mo*» – encontrará las palabras mom, mouse, moose, mommy, etc.; mientras que esta cadena de texto «mo?» sólo encontrará la palabra mom, ya que el comodín ? sólo sustituye a un carácter.

Los comodines se utilizan con el operador Like , que es una alternativa más sencilla a VBA Regex.

Uso del Comodín Asterisco (*) en VBA

El comodín Asterisco (*) reemplaza uno o más caracteres en una cadena VBA.

Veamos el siguiente rango de celdas en Excel:

Datos Ejemplo Comodines

Mediante el uso de un comodín Asterisco en nuestro código VBA, podemos encontrar todos los nombres que comienzan con «M» y cambiar el color del texto a rojo.

Sub CompararM()
  Dim x As Integer
  For x = 3 To 8
    If Range("B" & x).Value Like "M*" Then
      Range("B" & x).Font.Color = vbRed
    End If
  Next x
End Sub

Por lo tanto, hemos recorrido el rango y encontrado todos los nombres de pila que empiezan por la letra M ya que nuestra cadena comodín es«M*»

El resultado de ejecutar el código anterior se muestra a continuación.

Resultado Ejemplo Comodines

Si utilizáramos el comodín «Ma*», sólo cambiarían los nombres de B3 y B4.

Uso del Signo de Interrogación (?) en VBA

El signo de interrogación sustituye a un único carácter en una cadena VBA.

Considere los siguientes datos:

Datos Ejemplo2 Comodín Interrogación

 

Podemos utilizar la cadena comodín «?im» para encontrar cualquier nombre de pila que termine en «im»

Sub Comparar_im()
  Dim x As Integer
  For x = 3 To 8
    If Range("B" & x).Value Like "?im" Then
      Range("B" & x).Font.Color = vbRed
    End If
  Next x
End Sub

El resultado de ejecutar este código se muestra a continuación:

Resultado Ejemplo2 Comodín Interrogación

Uso de [Lista de Caracteres] como Comodín

El ejemplo anterior puede modificarse ligeramente para permitirnos utilizar el signo de interrogación, además de una lista de caracteres permitidos. Por tanto, la cadena comodín puede modificarse a «?[e-i]m», donde el primer carácter puede ser cualquier cosa, el segundo tiene que ser un carácter entre e e i y la última letra tiene que ser el carácter «m». Sólo se permiten 3 caracteres.

Sub Comparar_ListaCaracteres()
  Dim x As Integer
  For x = 3 To 8
    If Range("B" & x).Value Like "?[e-i]m" Then
      Range("B" & x).Font.Color = vbRed
    End If
  Next x
End Sub

El resultado de este código sería:

Resultado Ejemplo3 Lista de Caracteres

Uso del Comodín Numeral (#) en VBA

El comodín numeral (#) sustituye a un solo dígito en una cadena VBA. Podemos hacer coincidir entre 0 y 9.

Sub CompararNumeros()
  Dim x As Integer, y As Integer
  For x = 3 To 8
    For y = 2 To 5
      If ActiveSheet.Cells(x, y) Like "##" Then
         ActiveSheet.Cells(x, y).Font.Color = vbRed
      End If
   Next y
  Next x
End Sub

El código anterior recorrerá todas las celdas del Rango («B3:E8») y cambiará el color del texto de una celda a ROJO si se encuentra un número de dos dígitos en esa celda.

Resultado Ejemplo4 Comparar Números

En el ejemplo de abajo, el código sólo cambiará el número si el último número es un 9.

Sub CompararNumeros_9()
  Dim x As Integer, y As Integer
  For x = 3 To 8
    For y = 2 To 5
      If ActiveSheet.Cells(x, y) Like "#9" Then
         ActiveSheet.Cells(x, y).Font.Color = vbRed
      End If
   Next y
  Next x
End Sub

Resultado Ejemplo5 Comparar Números Solo 9

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples