VBA Comparar cadenas - StrComp

En VBA, puede comparar dos cadenas usando el StrComp función. En este tutorial, aprenderá a utilizar esta función con diferentes métodos de comparación.

Si desea aprender a usar VBA como operador para comparar coincidencias inexactas, haga clic aquí: VBA como operador.

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

Uso de la función StrComp para comparar dos cadenas

los StrComp La función toma dos cadenas y un método de comparación como argumentos. Hay 3 métodos de comparación:

  • vbBinaryCompare - compara dos cadenas binarias (distingue entre mayúsculas y minúsculas);
  • vbTextCompare - compara dos cadenas como textos (no distingue entre mayúsculas y minúsculas);
  • vbDatabaseCompare - este método solo está disponible en Microsoft Access y no en VBA.

De forma predeterminada, la función utiliza el método binario. Si omitimos este argumento, la función distinguirá entre mayúsculas y minúsculas.

La función devuelve los siguientes resultados:

  • 0 - si las cadenas son iguales;
  • -1 - si la cadena 1 es menor que la cadena 2;
  • 1 - si la cadena 1 es mayor que la cadena 2;
  • Nulo: si una de las cadenas está vacía.

Aquí está el código de ejemplo:

123 Dim intResult As IntegerintResult = StrComp ("Computadora", "Computadora")

En este ejemplo, queremos comprobar si las cadenas "Computadora" y "Computadora" son iguales, utilizando el método de comparación predeterminado (binario). El resultado de la función está en el intResult variable. Como puede ver en Imagen, ambas cadenas son iguales, por lo tanto, la intResult tiene valor 0.

Imagen 1. Usando la función StrComp con el método binario en VBA

Uso de la función StrComp con método binario y textual

Ahora verá la diferencia entre usar el método binario y textual. El método binario tiene un número binario para cada carácter, por lo que las mayúsculas y minúsculas son caracteres diferentes en este método. Por otro lado, el método textual considera "S" y "s" como las mismas letras. Si desea que la función no distinga entre mayúsculas y minúsculas, debe establecer el tercer argumento en vbBinaryCompare. Aquí está el código:

123456 Dim intResult1 como enteroDim intResult2 como enterointResult1 = StrComp ("Computadora", "Computadora")intResult2 = StrComp ("Computadora", "CompuTer", vbTextCompare)

Queremos comparar cadenas "Computadora" y "Computadora", utilizando ambos métodos.

En la variable intResult1, obtendremos el valor con el método binario, mientras que el intResult2 obtendrá el valor con el método textual. Puedes ver los valores de estas dos variables:

Imagen 2. Uso de la función StrComp con método binario y textual

El valor de intResult1 es 1, lo que significa que dos cadenas son diferentes para el método binario. Para el método textual, estas dos cadenas son iguales, por lo que el valor de intResult2 es 0.

wave wave wave wave wave