Cómo comparar dos filas en Excel usando VBA
Comparar datos fila por fila manualmente puede ser un proceso tedioso si se hace manualmente. Permítanos mostrarle cómo comparar dos filas en Excel usando VBA y automatizar este proceso.
VBA tiene una función incorporada llamada StrComp que puede comparar dos cadenas. Esta función devuelve un entero basado en el resultado de la comparación. Cero ‘ 0 ‘ significa una coincidencia perfecta, y el ejemplo de código a continuación resalta la celda si el resultado NO es igual a ‘0’.
La función StrComp obtiene 3 argumentos: Los primeros 2 argumentos son las cadenas a comparar y el último es el tipo de comparación (opcional). Si se omite, la opción Comparar determina el tipo de comparación. A continuación se muestran todas las opciones disponibles:
- vbUseCompareOption: Realiza una comparación utilizando la configuración de la instrucción Option Compare.
- vbBinaryCompare: Realiza una comparación binaria. Minúsculas.
- vbTextCompare: Realiza una comparación textual. No distingue entre mayúsculas y minúsculas.
- vbDatabaseCompare: Realiza una comparación basada en la información de su base de datos. Solo Microsoft Access.
El código requiere que el usuario seleccione las filas en un solo rango. El rango seleccionado se asigna a una variable de rango bothows y cada celda de ese rango se compara columna por columna. Usando una instrucción With, no tenemos que repetir las dos hileras para cada fila, y para el bucle Next Next es cómo podemos verificar cada celda.
Resaltado
Después de obtener el rango, puede usar la propiedad ColorIndex para establecer ese rango como color. Aquí hay algunos números índice de colores:
- 3: Rojo
- 5: Azul
- 6: Amarillo
- 0: Sin relleno
Primero, debe agregar el módulo al libro de trabajo o al archivo de complemento. Copie y pegue el código en el módulo para ejecutarlo. La principal ventaja del método de módulo es que permite guardar el código en el archivo, para que pueda ser utilizado de nuevo más tarde. Además, las subrutinas de los módulos pueden ser utilizadas por iconos en las cintas de menú o atajos de teclado. Recuerde guardar su archivo en formato XLSM o XLAM para guardar su código VBA.
Código de ejemplo para resaltar
Sub HighlightRowDifferences() Dim bothrows As Range, i As Integer Set bothrows = Selection With bothrows For i = 1 To .Columns.Count If Not StrComp(.Cells(1, i), .Cells(2, i), vbBinaryCompare) = 0 Then Range(.Cells(1, i), .Cells(2, i)).Interior.ColorIndex = 6 End If Next i End WithEnd Sub