Come confrontare le colonne con VBA

June 5

Visual Basic, Applications Edition (VBA) è un linguaggio di programmazione progettato per i programmi di Microsoft Office, come PowerPoint, Word ed Excel. Esso consente di creare strumenti personalizzati, pulsanti e menu che è possibile utilizzare per personalizzare le applicazioni di Office. Per esempio, non vi è uno strumento in Excel che permette di confrontare le colonne ed evidenziare le differenze. Tuttavia, con un po 'di codice VBA, è possibile creare uno strumento utile solo per tale scopo.

istruzione

1 Fare clic sulla scheda "Sviluppatore" in Excel, e poi cliccare su "Visual Basic".

2 Fai clic su "Inserisci". Fai clic su "Modulo" per aprire una nuova finestra del modulo.

3 Tagliare e incollare il seguente codice nella finestra:

CompareColumns sub ()

Dim Column1 come gamma

Dim Column2 As Range

'Utente Prompt per la prima gamma di colonna per confrontare ...

'------------------------------------------------- ---

Set Column1 = Application.InputBox("Select First Column to Compare", Type:=8)

'Verificare che la gamma hanno fornito consiste di solo 1 colonna ...

Se Column1.Columns.Count> 1 Poi

Fare Fino Column1.Columns.Count = 1

MsgBox "È possibile selezionare solo 1 colonna"

Impostare Colonna1 = Application.InputBox ( "Seleziona prima colonna al Confronto", tipo: = 8)

Ciclo continuo

Finisci se

'Utente Prompt per il secondo intervallo di colonna per confrontare ...

'------------------------------------------------- ---

Set Column2 = Application.InputBox("Select Second Column to Compare", Type:=8)

'Verificare che la gamma hanno fornito consiste di solo 1 colonna ...

Se Column2.Columns.Count> 1 Poi

Fare Fino Column2.Columns.Count = 1

MsgBox "È possibile selezionare solo 1 colonna"

Impostare Colonna2 = Application.InputBox ( "Selezionare seconda colonna al Confronto", tipo: = 8)

Ciclo continuo

Finisci se

'Vedi entrambe colonna gamme sono le stesse dimensioni ...

'---------------------------------------------

Se Column2.Rows.Count <> Column1.Rows.Count Poi

Do Until Column2.Rows.Count = Column1.Rows.Count

MsgBox "La seconda colonna deve essere la stessa dimensione come il primo"

Impostare Colonna2 = Application.InputBox ( "Selezionare seconda colonna al Confronto", tipo: = 8)

Ciclo continuo

Finisci se

'Se intere colonne sono state selezionate (ad esempio $ AA), di limitare i formati della gamma al

'UsedRange del foglio attivo. Questo interrompe la routine controlla l'intero foglio

'Inutilmente.

'------------------------------------------------- ------------------------------

Se Column1.Rows.Count = 65536 Poi

Set Column1 = Range(Column1.Cells(1), Column1.Cells(ActiveSheet.UsedRange.Rows.Count))

Set Colonna2 = Range (Column2.Cells (1), Column2.Cells (ActiveSheet.UsedRange.Rows.Count))

Finisci se

'Perform the comparison and set cells that are the same to yellow

'------------------------------------------------- ---------------

Dim intCell As Long

For intCell = 1 To Column1.Rows.Count

Se Column1.Cells (intCell) = Column2.Cells (intCell) allora

Column1.Cells (intCell) .Interior.Color = vbYellow

Column2.Cells (intCell) .Interior.Color = vbYellow

Finisci se

Il prossimo

End Sub

4 Premere il tasto "F5" per eseguire la routine e confrontare le colonne.

Consigli e avvertenze

  • Il codice, come scritto, cambierà le differenze nelle colonne a giallo. È possibile selezionare un altro colore, sostituendo il giallo nelle linee di selezione a due colori a un altro colore. Ad esempio, se si desidera che il codice per evidenziare in rosso, modificare "Column1.Cells (intCell) .Interior.Color = vbYellow" e "Column2.Cells (intCell) .Interior.Color = vbYellow"
  • a
  • "Column1.Cells (intCell) .Interior.Color = vbRed" e "Column2.Cells (intCell) .Interior.Color = vbRed."