VBA – Operador Like
En VBA, puede comparar dos cadenas utilizando el operador Like para comprobar la coincidencia de las cadenas. En este tutorial, aprenderá a utilizar este operador con diferentes patrones.
Si desea aprender a comparar cadenas en VBA, haga clic aquí: VBA Comparar Cadenas – StrComp
Si desea aprender a utilizar operadores de comparación, haga clic aquí: Operadores de Comparación VBA – No Igual a & Más
Utilizando el Operador Like para Comparar Dos Cadenas
Con el operador Like, podemos verificar si una cadena comienza con un texto específico, lo incluye, etc. Por defecto, el operador Like compara caracteres utilizando el método Binario. Esto significa que el operador distingue entre mayúsculas y minúsculas. Si quieres que no distinga entre mayúsculas y minúsculas, tienes que poner Option Compare Text en la parte superior de tu módulo. Usando este método, el operador Like considera que «S» y «s» son los mismos caracteres. En nuestros ejemplos, utilizaremos la comparación por defecto, que distingue entre mayúsculas y minúsculas.
Si la coincidencia existe, el operador Like devuelve Verdadero como resultado, o Falso en caso contrario.
En primer lugar, veremos el ejemplo sencillo en el que queremos comprobar si nuestra variable de cadena empieza por Sr . Para ello, es necesario poner un asterisco (*) al final del texto coincidente(Sr*). Este es el código:
Sub Demo_Operador_Like()
Dim strName As String
Dim blnResult As Boolean
strName = "Sr. Michael James"
If strName Like "Sr*" Then
blnResult = True
Else
blnResult = False
End If
End Sub
En este ejemplo, queremos comprobar si la cadena strName empieza por Sr y devolver Verdadero o Falso en la variable blnResult.
En primer lugar, establecemos el valor de strName en Sr. Michael James:
strName = "Sr. Michael James"
Luego usamos el operador Like en la sentencia If:
If strName Like "Sr*" Then
blnResult = True
Else
blnResult = False
End If
Como strName empieza por Sr, blnResult devuelve True:
Imagen 1. Uso del operador Like para comprobar si la cadena empieza por determinados caracteres
Uso del Operador Like con Diferentes Patrones de Coincidencia
El operador Me gusta puede comprobar la coincidencia de dos cadenas basándose en diferentes patrones. Esta es la lista de posibles patrones de coincidencia:
Código del patrón |
Tipo de coincidencia |
* |
Coincide con 0 o más caracteres |
? |
Coincide con un solo carácter |
# |
Coincide con un solo dígito |
[chars] |
Coincide con un único carácter de una lista de caracteres |
[A-Z] |
Coincide con cualquier carácter en mayúscula del alfabeto |
[A-Za-z] |
Coincide con cualquier carácter del alfabeto |
[caracteres] |
Coincide con un único carácter excluyendo una lista de caracteres |
Ahora podemos ver cómo utilizar estos patrones en el código. Aquí está el ejemplo para múltiples patrones:
Coincidencia de un solo carácter:
strText1 = "ABCDE"
If strText1 Like "AB?DE" Then
blnResult1 = True
Else
blnResult1 = False
End If
Coincidencia de un solo dígito:
strText2 = "AB7DE"
If strText2 Like "AB#DE" Then
blnResult2 = True
Else
blnResult2 = False
End If
Coincidencia con cualquier carácter en mayúscula del alfabeto:
strText3 = "ABCDE"
If strText3 Like "AB[A-Z]DE" Then
blnResult3 = True
Else
blnResult3 = False
End If
No coincide con ninguna letra mayúscula del alfabeto:
strText4 = "AB7DE"
If strText4 Like "AB[!A-Z]DE" Then
blnResult4 = True
Else
blnResult4 = False
End If
Coincidencia con cualquier carácter del alfabeto (mayúsculas o minúsculas):
strText5 = "ABcDE"
If strText5 Like "AB[A-Za-z]DE" Then
blnResult5 = True
Else
blnResult5 = False
End If
Cuando ejecutas el código, puedes ver que el operador Like devuelve True en las variables blnResult para cada comparación:
Imagen 2. Uso del operador Like con diferentes patrones de comparación