Función VBA StrComp

En nuestro trabajo, normalmente hacemos comparaciones cada vez. Estas comparaciones pueden estar en textos de números o cualquier tipo de datos. Para los números, ya sabemos cómo hacemos una comparación. Hay muchos métodos matemáticos para hacerlo. Pero, ¿cómo comparamos dos cadenas, qué resultado obtendremos? STRCOMP en VBA es una función de comparación de cadenas. Compara dos cadenas entre sí y nos da el resultado. Sin embargo, el resultado de la comparación no es verdadero o falso. Hay tres formas de comparar dos cadenas en la función STRCOMP. Antes de sumergirnos en eso, veamos la sintaxis de esta función.

Sintaxis de StrComp en Excel VBA

La sintaxis de la función VBA StrComp en Excel es la siguiente:

La cadena 1 es la cadena que se comparará con la cadena 2. Los métodos de comparación son opcionales para esta función. Ahora pasemos a los métodos de comparación en esta función. Hay tres tipos de métodos de comparación en esta función y son los siguientes:

  1. VbBinaryCompare: este es el método de comparación predeterminado si no elegimos un método de comparación para nuestra función. Este método de comparación distingue entre mayúsculas y minúsculas, lo que significa que si la cadena 1 y la cadena 2 son iguales pero la cadena 1 está en minúscula y la cadena 2 está en mayúscula, ambas no serán similares. El código binario para "a" y "A" son diferentes. Del mismo modo para otros personajes. Esos códigos se llaman códigos ASCII.
  2. VbTextCompare: en este método de comparación, la comparación no distingue entre mayúsculas y minúsculas, por lo que si la cadena 1 y la cadena 2 son iguales pero no en el mismo caso, se utilizarán estos métodos de comparación.
  3. Comparación de acceso: este método se utiliza en comparaciones de bases de datos.

Ahora, cuando usemos esta función, ¿qué resultado obtendremos? No obtendremos verdadero o falso usando esta función de comparación. En cambio, podemos tener cualquiera de los siguientes resultados:

  1. 0 si las cadenas son iguales entre sí.
  2. 1 si las cadenas no coinciden entre sí.
  3. -1 si la primera cadena es más pequeña que la cadena 2.
  4. NULL si no hay valor para la cadena 1 y la cadena 2.

Revisaremos algunos ejemplos y veremos cómo se realizan estas comparaciones de cadenas en VBA.

¿Cómo usar la función VBA StrComp en Excel?

Aprenderemos a usar una función VBA StrComp con ejemplo en excel.

Puede descargar esta plantilla Excel de VBA StrComp aquí - Plantilla Excel de VBA StrComp

Ejemplo # 1 - VBA StrComp

Primero usemos el método de comparación binaria para nuestro ejemplo. Tomaremos dos entradas de cadenas del usuario, una en minúsculas y la otra en mayúsculas y las compararemos.

Paso 1: desde la pestaña del desarrollador y luego desde Visual Basic para acceder al Editor VB.

Paso 2: inserte un módulo desde la pestaña de inserción para comenzar a escribir códigos en VBA.

Paso 3: haga doble clic en el módulo desde la pestaña del proyecto y declare una subfunción de la siguiente manera.

Código:

 Sub muestra () End Sub 

Paso 4: Necesitamos definir tres variables como cadenas, dos contendrán nuestra entrada mientras que otra almacenará el resultado.

Código:

 Submuestra () Dim A, B, C como String End Sub 

Paso 5: En la Variable A y B, tome la entrada del usuario para dos cadenas de la siguiente manera.

Código:

 Sub Muestra () Dim A, B, C Como Cadena A = InputBox ("Ingrese una Cadena", "En Minúscula") B = InputBox ("Ingrese una Cadena", "En Mayúscula") Fin Sub 

Paso 6: Compare ambas cadenas en la variable A y B y almacene el valor en C usando la función STRCOMP y use un método de comparación como una comparación binaria.

Código:

 Sub Muestra () Dim A, B, C Como Cadena A = InputBox ("Ingrese una Cadena", "En Minúscula") B = InputBox ("Ingrese una Cadena", "En Mayúscula") C = StrComp (A, B, vbBinaryCompare) End Sub 

Paso 7: Visualice la salida almacenada en la Variable C usando la función Msgbox.

Código:

 Sub Muestra () Dim A, B, C Como Cadena A = InputBox ("Ingrese una Cadena", "En Minúscula") B = InputBox ("Ingrese una Cadena", "En Mayúscula") C = StrComp (A, B, vbBinaryCompare) MsgBox C End Sub 

Paso 8: Ahora presione F5 para ejecutar el código y proporcione dos cadenas de entrada de la siguiente manera,

Paso 9: Vea el resultado final de la siguiente manera.

Como resultado, obtenemos 1 porque en la comparación binaria ambas cadenas no son iguales, ya que una de las cadenas está en mayúscula y la otra en minúscula.

Ejemplo # 2 - VBA StrComp

Ahora usemos otro método de comparación que es VbTextCompare y veamos qué resultados obtendremos para las mismas entradas que proporcionamos anteriormente.

Paso 1: en el módulo que insertamos anteriormente, haga doble clic en él desde la pestaña del proyecto y declare una subfunción para comenzar a trabajar en el segundo ejemplo de la siguiente manera.

Código:

 Sub Sample1 () End Sub 

Paso 2: Necesitamos definir tres variables como cadenas, dos contendrán nuestra entrada mientras que otra almacenará el resultado.

Código:

 Sub Sample1 () Dim A, B, C As String End Sub 

Paso 3: en la Variable A y B, tome la entrada del usuario para dos cadenas de la siguiente manera.

Código:

 Sub Sample1 () Dim A, B, C As String A = InputBox ("Enter a String", "In Minúsculas") B = InputBox ("Enter a String", "In Mayúsculas") End Sub 

Paso 4: Compare ambas cadenas en la variable A y B y almacene el valor en C usando la función STRCOMP y use el método de comparación como comparación de texto.

Código:

 Sub Muestra1 () Dim A, B, C Como Cadena A = InputBox ("Ingrese una Cadena", "En Minúscula") B = InputBox ("Ingrese una Cadena", "En Mayúscula") C = StrComp (A, B, vbTextCompare) End Sub 

Paso 5: Visualice la salida almacenada en la Variable C usando la función Msgbox.

Código:

 Sub Muestra1 () Dim A, B, C Como Cadena A = InputBox ("Ingrese una Cadena", "En Minúscula") B = InputBox ("Ingrese una Cadena", "En Mayúscula") C = StrComp (A, B, vbTextCompare) MsgBox C End Sub 

Paso 6: Ahora presione F5 y proporcione dos cadenas de entrada de la siguiente manera.

Paso 7: Vea el resultado final de la siguiente manera.

Como resultado, obtenemos 0 ya que la comparación de texto no distingue entre mayúsculas y minúsculas, lo que significa que las cadenas son iguales.

Ejemplo # 3 - VBA StrComp

Ahora tengo algunos datos en la Hoja 1 de la siguiente manera, quiero saber si los datos en la columna A y la columna B son similares entre sí o no. Echa un vistazo a los datos a continuación.

Paso 1: Trabajemos en el tercer ejemplo para nuestros datos de la siguiente manera.

Código:

 Sub Sample2 () End Sub 

Paso 2: active la hoja de trabajo 1 para que podamos usar sus propiedades.

Código:

 Sub Sample2 () Worksheets ("Sheet1"). Active End Sub 

Paso 3: Declare dos variables, una como un número entero que se usará para el bucle y otra como una cadena que se usará para almacenar el resultado de la comparación.

Código:

 Sub Sample2 () Hojas de trabajo ("Sheet1"). Active Dim A como entero Dim B como String End Sub 

Paso 4: escriba el siguiente código para comparar y usar el bucle for.

Código:

 Sub Sample2 () Worksheets ("Sheet1"). Active Dim A como entero Dim B como String para A = 2 a 5 B = StrComp (Cells (A, 1) .Value, Cells (A, 2) .Value, vbBinaryCompare) Si B = 0 Entonces Celdas (A, 3). Valor = "Igual" Otras Celdas (A, 3). Valor = "NO Igual" Fin Si Siguiente A Fin Sub 

Paso 5: Ejecute el código anterior y vea el resultado en la Hoja 1 de la siguiente manera.

Ninguna de las cadenas era igual en la comparación.

Cosas para recordar

  • Esta es una función de comparación.
  • Devuelve 0, 1, -1 o NULL como resultado no verdadero o falso.
  • Si no proporcionamos ninguno de los métodos de comparación, por defecto, el método de comparación es VbBinaryCompare.
  • El método de comparación es un argumento opcional para esta función.

Artículos recomendados

Esta es una guía de VBA StrComp. Aquí discutimos cómo usar la función Excel VBA StrComp junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA InStr explicado con ejemplos
  2. Tipo de datos enteros de VBA
  3. ¿Cómo seleccionar la celda usando el código VBA?
  4. Transponer un rango en VBA
  5. Hojas de trabajo de VBA (ejemplos)

Categoría: