VBA – Comparar cadenas – StrComp

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on abril 4, 2022

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

Si desea aprender a utilizar el operador like de VBA para comparar coincidencias inexactas, haga clic aquí: Operador LIKE de VBA.

Si desea aprender a utilizar los operadores de comparación, haga clic aquí: Operadores de comparación VBA – Not Equal a y más

Usando la Función StrComp para Comparar Dos Cadenas

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

  • vbBinaryCompare – compara dos cadenas en binario (distingue entre mayúsculas y minúsculas);
  • vbTextCompare – compara dos cadenas como textos (no distingue mayúsculas de minúsculas);
  • vbDatabaseCompare – este método sólo está disponible en Microsoft Access y no en VBA.

Por defecto, 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;
  • Null – si una de las cadenas está vacía.

Este es el código de ejemplo:

Dim intResult As Integer
intResult = StrComp("Computadora", "Computadora")

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

Comparar cadenas

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

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

Ahora verá la diferencia entre usar el método binario y el textual. El método binario tiene un número binario para cada carácter, por lo que las mayúsculas y las 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 como vbBinaryCompare. Este es el código:

Sub CompararCadenas()
    Dim intResult1 As Integer
    Dim intResult2 As Integer
 
    intResult1 = StrComp("Computadora", "CompuTadora")
    intResult2 = StrComp("Computadora", "CompuTadora", vbTextCompare)
End Sub

Queremos comparar las cadenas «Computadora« y «CompuTadora» , utilizando ambos métodos. En la variable intResult1, obtendremos el valor con el método binario, mientras que el intResultado2 obtendrá el valor con el método textual. Puedes ver los valores de estas dos variables:

Comparar cadenas vbTextCompare

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

El valor de intResult1 es 1, lo que significa que las 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.

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