Jämföra cellområden

Här demonstreras en enkel teknik för att jämföra cellområden med varandra.

Exemplet skriver ut de cellladresser vars värden stämmer överens med varandra - detta i ett demonstrativt syfte.

Sub Jamfora_Cellomraden()
'© 2001 Alla rättigheter XL-Dennis
Dim rnEtt As Range, rnTva As Range
Dim iAntal As Integer, i As Integer, j As Integer


Set rnEtt = ActiveWorkbook.Sheets("Blad1").Range("A2:B10")
Set rnTva = ActiveWorkbook.Sheets("Blad1").Range("C2:D10")


'Kontrollera att cellområdena är lika stora, såväl antal
'rader som kolumner.
If rnEtt.Rows.Count = rnTva.Rows.Count And _
       rnEtt.Columns.Count = rnTva.Columns.Count Then
       iAntal = 0

'Här jämförs cellvärdena med varandra.
      For i = 1 To rnEtt.Rows.Count
        For j = 1 To rnEtt.Columns.Count
             If rnEtt(i, j).Value = rnTva(i, j).Value Then
                rnTva(i, j).Offset(0, 2).Value = rnEtt(i, j).Address
                rnTva(i, j).Offset(0, 3).Value = rnTva(i, j).Address
             Else
             iAntal = iAntal + 1
             End If
        Next j
      Next i

'Om alla celler matchar varandra så visas följande meddelande.
If iAntal = (i - 1) * (j - 1) Then
   MsgBox "Alla celler matchar varandra."
End If

'Felmeddelande om cellområdena storlek inte är identiska.
Else
   MsgBox "Cellområdena är inte av samma storlek!", vbCritical
End If

End Sub