En VBA, puede comparar dos cadenas usando el Igual que operador para comprobar la coincidencia de las cadenas. En este tutorial, aprenderá a usar este operador con diferentes patrones.
Si desea aprender a comparar cadenas en VBA, haga clic aquí: VBA Compare Strings - StrComp
Si desea aprender a usar los operadores de comparación, haga clic aquí: Operadores de comparación de VBA: no es igual a y más
Usar el operador Like para comparar dos cadenas
Con el operador Like, podemos comprobar si una cadena comienza con un texto específico, lo incluye, etc. Por defecto, el Igual que El operador compara caracteres mediante el método binario. Esto significa que el operador distingue entre mayúsculas y minúsculas. Si desea que no distinga entre mayúsculas y minúsculas, debe poner Opción Comparar texto en la parte superior de su módulo. Usando este método, el Igual que El operador considera que “S” y “s” son los mismos caracteres. En nuestros ejemplos, usaremos la comparación predeterminada que distingue entre mayúsculas y minúsculas.
Si existe coincidencia, el Igual que El operador devuelve True como resultado o False en caso contrario.
Primero, veremos el ejemplo simple donde queremos verificar si nuestra variable de cadena comienza con Señor. Para hacer esto, debe poner un asterisco (*) al final del texto coincidente (Señor*). Aquí está el código:
1234567891011121314 | Sub LikeDemo ()Dim strName como cadenaDim blnResult como booleanostrName = "Sr. Michael James"Si strName como "Mr *", entoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara siEnd Sub |
En este ejemplo, queremos comprobar si la cadena strName empieza con Señor y devuelve Verdadero o Falso en la variable blnResult.
Primero, establecemos el valor de strName para Sr. Michael James:
1 | strName = "Sr. Michael James" |
Entonces usamos el Igual que operador en la declaración If:
12345 | Si strName como "Mr *", entoncesblnResult = VerdaderoDemásblnResult = FalsoTerminara si |
Como el strName empieza con Señor, los blnResult devuelve True:
Imagen 1. Usando el operador Me gusta para verificar si la cadena comienza con ciertos caracteres
Usar el operador Like con diferentes patrones coincidentes
El operador Like puede verificar la coincidencia de dos cadenas en función de diferentes patrones. Aquí está la lista de posibles patrones coincidentes:
Código de patrón |
Tipo de emparejamiento |
* | Coincide con 0 o más caracteres |
? | Coincide con un solo carácter |
# | Coincide con un solo dígito |
[caracteres] | Coincide con un solo carácter de una lista de caracteres |
[ARIZONA] | Coincide con cualquier carácter en mayúscula del alfabeto |
[A-Za-z] | Coincide con cualquier carácter del alfabeto |
[! caracteres] | Coincide con un solo carácter excluyendo una lista de caracteres |
Ahora podemos ver cómo usar estos patrones en el código. A continuación, se muestra el ejemplo de varios patrones:
Coincidencia de un solo carácter:
1234567 | strText1 = "ABCDE"Si strText1 como "AB? DE", entoncesblnResult1 = VerdaderoDemásblnResult1 = FalsoTerminara si |
Coincidencia de un solo dígito:
1234567 | strText2 = "AB7DE"Si strText2 como "AB # DE", entoncesblnResult2 = VerdaderoDemásblnResult2 = FalsoTerminara si |
Coincidir con cualquier carácter en mayúscula del alfabeto:
1234567 | strText3 = "ABCDE"Si strText3 como "AB [A-Z] DE", entoncesblnResult3 = VerdaderoDemásblnResult3 = FalsoTerminara si |
No coincide con ningún carácter en mayúscula del alfabeto:
1234567 | strText4 = "AB7DE"Si strText4 como "AB [! A-Z] DE", entoncesblnResult4 = VerdaderoDemásblnResult4 = FalsoTerminara si |
Coincidencia de cualquier carácter del alfabeto (mayúsculas o minúsculas):
1234567 | strText5 = "ABcDE"Si strText5 como "AB [A-Za-z] DE", entoncesblnResult5 = VerdaderoDemásblnResult5 = FalsoTerminara si |
Cuando ejecuta el código, puede ver que el Igual que el operador devuelve True en blnResult variables para cada comparación:
Imagen 2. Uso del operador Me gusta con diferentes patrones de coincidencia