Leere Zellen ignorieren
23.08.2003 10:34:16
Peter
mit unten stehendem code (den ich auf dieser seite gefunden habe) vergleiche ich zwei tabellenblätter und lasse die unterschiede markieren. Jede Zeile stellt einen Datensatz dar, es können sich Zellinhalte und Zellfarben ändern, sowie Datensätze an beliebiger Stelle gelöscht sein oder neu eingefügt. Soweit funktioniert das auch ganz gut.
Nun der Haken:
Kommt in einer oder beiden Tabellen eine Leerzeile vor, wird der Vergleich abgebrochen. Um das zu umgehen kann ich entweder vorher die Leerzeilen löschen oder mit einem beliebigen Wert ersetzen lassen.
Da ich aber an den Quelltabellen so wenig Änderungen wie möglich vornehmen will (am besten gar keine), suche ich nach einer Möglichkeit, die Leerzeilen einfach zu ignorieren/überspringen.
Hier der code:
Sub Vergleich()
Dim rng As Range
Dim lRow As Long, lRowT As Long
Dim iCol As Integer
Dim bln As Boolean
Set rng = Worksheets("PROTOKOLL_ALT").Range("A1").CurrentRegion
For lRow = 1 To Range("A1").CurrentRegion.Rows.Count
bln = True
For lRowT = 1 To rng.Rows.Count
For iCol = 1 To 9
If Cells(lRow, iCol) <> rng(lRowT, iCol) Or Cells(lRow, 1).Interior.ColorIndex <> rng(lRowT, 1).Interior.ColorIndex Then
bln = False
Exit For
End If
Next iCol
If bln = True Then
Exit For
ElseIf lRowT < rng.Rows.Count Then
bln = True
End If
Next lRowT
If bln = False Then
Range(Cells(lRow, 10), Cells(lRow, 10)).Interior.ColorIndex = 3
End If
Next lRow
End Sub