Comparar cadenas en VBA

Iqra Hasnain 18 agosto 2022
Comparar cadenas en VBA

Presentaremos cómo comparar cadenas con diferentes métodos en VBA.

Comparar cadenas en VBA

Al trabajar con hojas de Excel, hay algunas situaciones en las que tenemos que comparar cadenas y queremos obtener resultados sobre qué cadena es mayor o menor que la otra. VBA proporciona un método perfecto para este propósito conocido como StrComp(), que compara dos cadenas para obtener los resultados en valores numéricos.

Si las dos cadenas que estamos comparando son iguales, este método devolverá 0. Si la primera cadena es menor que la otra cadena, obtendremos el -1 como valor de retorno.

Si la primera cadena de entrada es más grande que la otra cadena, obtendremos como resultado el valor 1. Si una de las cadenas de entrada del usuario está vacía, el valor devuelto será Null.

El método StrComp() utiliza tres métodos de comparación, pero solo dos son los más utilizados, y discutiremos estos dos métodos. Si queremos comparar el binario de dos cadenas, podemos usar vbBinaryCompare, y este método distingue entre mayúsculas y minúsculas.

Si queremos comparar el texto de ambas cadenas, podemos usar vbTextCompare, un método que no distingue entre mayúsculas y minúsculas. Pongamos un ejemplo y comparemos dos cadenas.

Código:

# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World"

compare = StrComp(stringOne, stringTwo)

MsgBox compare

End Sub

Producción:

comparar cadenas en VBA usando el método StrComp

Del ejemplo anterior, pasamos las mismas cadenas que obtuvimos 0 como valor de retorno. Pasemos diferentes valores y verifiquemos qué valor de retorno obtenemos.

Código:

# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello World!"

compare = StrComp(stringOne, stringTwo)

MsgBox compare

End Sub

Producción:

compare cadenas en VBA usando el método StrComp y proporcionando diferentes valores

Del código anterior, pasamos las diferentes cadenas con longitud, obtuvimos -1 como valor de retorno porque la segunda cadena era mayor que la primera. Probemos los métodos de comparación de cadenas en StrComp() y verifiquemos cómo difieren los resultados si usamos las mismas cadenas pero diferentes en mayúsculas y usamos el método vbTextCompare.

Código:

# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello WorLd"

compare = StrComp(stringOne, stringTwo, vbTextCompare)

MsgBox compare

End Sub

Producción:

compare cadenas en VBA usando el método StrComp y usando vbTextCompare

Ahora, usamos el método vbBinaryCompare en nuestro ejemplo agregando un solo espacio adicional.

Código:

# VBA
Sub test()
Dim compare As Integer
stringOne = "Hello World"
stringTwo = "Hello  World"

compare = StrComp(stringOne, stringTwo, vbBinaryCompare)

MsgBox compare

End Sub

Producción:

compare cadenas en VBA usando el método StrComp y usando vbBinaryCompare

De esta forma, podemos comparar dos cadenas en función de su longitud o del texto utilizando el método StrComp() con métodos integrados como vbTextCompare y vbBinaryCompare.

Artículo relacionado - VBA String