Cómo comparar columnas con VBA

Escrito por stephanie ellen
  • Comparte
  • Twittea
  • Comparte
  • E-mail

Visual Basic para Aplicaciones (VBA) es un lenguaje de programación diseñado por las aplicaciones de Microsoft Office como PowerPoint, Word y Excel. Te permite crear herramientas, botones y menús que puedes usar para personalizar tus aplicaciones de Office. Por ejemplo, en Excel no existe una herramienta que te permita comparar columnas y resaltar las diferencias. Sin embargo, con un poco de código VBA, puedes crear una útil herramienta para dicho propósito.

Nivel de dificultad:
Difícil

Otras personas están leyendo

Necesitarás

  • Excel 2007 o Excel 2010

Lista completaMinimizar

Instrucciones

  1. 1

    Haz clic en el menú "Desarrollador" en Excel y luego en "Visual Basic".

  2. 2

    Haz clic en "Insertar". Luego en "Módulo" para abrir una nueva ventana de módulo.

  3. 3

    Corta y pega el siguiente código dentro de la ventana: Sub CompareColumns() Dim Column1 As Range Dim Column2 As Range ''''''''''''''''Pide al usuario el primer rango de columnas a comparar... ''''''''''''''''---------------------------------------------------- Set Column1 = Application.InputBox("Selecciona la primer columna a comparar", Type:=8) ''''''''''''''''Revisar que el rango que haya capturado consista en solamente 1 columna... If Column1.Columns.Count > 1 Then Do Until Column1.Columns.Count = 1 MsgBox "Solamente puedes seleccionar 1 columna" Set Column1 = Application.InputBox("Selecciona la primer columna a comparar", Type:=8) Loop End If ''''''''''''''''Pide al usuario el segundo rango de columnas a comparar... ''''''''''''''''---------------------------------------------------- Set Column2 = Application.InputBox("Selecciona la segunda columna a comparar", Type:=8) ''''''''''''''''Revisa que el rango consista en solamente 1 columna... If Column2.Columns.Count > 1 Then Do Until Column2.Columns.Count = 1 MsgBox "Solamente puedes seleccionar 1 columna" Set Column2 = Application.InputBox("Selecciona la segunda columna a comparar", Type:=8) Loop End If ''''''''''''''''Revisa que ambos rangos de columnas sean del mismo tamaño... ''''''''''''''''--------------------------------------------- If Column2.Rows.Count Column1.Rows.Count Then Do Until Column2.Rows.Count = Column1.Rows.Count MsgBox "La segunda columna debe tener el mismo tamaño que la primera" Set Column2 = Application.InputBox("Selecciona la segunda columna a comparar", Type:=8) Loop End If ''''''''''''''''Si las columnas enteras han sido seleccionadas (e.g. $AA), limita los tamaños del rango al ''''''''''''''''tamaño de la hoja activa. Esto evita que la rutina revise la hoja completa ''''''''''''''''innecesariamente. ''''''''''''''''------------------------------------------------------------------------------- If Column1.Rows.Count = 65536 Then Set Column1 = Range(Column1.Cells(1), Column1.Cells(ActiveSheet.UsedRange.Rows.Count)) Set Column2 = Range(Column2.Cells(1), Column2.Cells(ActiveSheet.UsedRange.Rows.Count)) End If ''''''''''''''''Realiza la comparación y cambia las celdas iguales a color amarillo ''''''''''''''''---------------------------------------------------------------- Dim intCell As Long For intCell = 1 To Column1.Rows.Count If Column1.Cells(intCell) = Column2.Cells(intCell) Then Column1.Cells(intCell).Interior.Color = vbYellow Column2.Cells(intCell).Interior.Color = vbYellow End If Next End Sub

  4. 4

    Presiona "F5" para ejecutar la rutina y comparar las columnas.

Consejos y advertencias

  • El código, como está escrito, cambiará las diferencias entre las columnas a color amarillo. Puedes seleccionar otro color reemplazando el amarillo en las líneas de selección de dos colores a otro color. Por ejemplo, si quieres que el código resalte en rojo, cambia "Column1.Cells(intCell).Interior.Color = vbYellow" y " Column2.Cells(intCell).Interior.Color = vbYellow"
  • a
  • "Column1.Cells(intCell).Interior.Color = vbRed" y "Column2.Cells(intCell).Interior.Color = vbRed".

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles