Ich habe zwei Arbeitsblätter, die dieselben Datenpunkte enthalten. Ich muss Sheet1 (gültige Daten) mit Sheet2 vergleichen und sehen, was in Sheet2 geändert wurde, indem ich die Zellenfarbe in Rot ändere. Ich habe dieses Makro ausprobiert, aber es malte alles, nicht nur die unterschiedlichen Zellen. Hier sind Bilder, die eine kleine Teilmenge der Daten in der Realität zeigen, dass es für jedes Arbeitsblatt in etwa 3K Reihen sind Image1 Image2Vergleichen von zwei Arbeitsblättern und Hervorheben der Differenz
Und das ist die Syntax Ich habe versucht (die nicht auf fast Hervorhebung alles funktioniert)
Dim mycell As Range
Dim mydiff As Integer
Dim shtSheet1 As String
Dim shtSheet2 As String
shtSheet2 = "Sheet2"
shtSheet1 = "Sheet1"
For Each mycell In ActiveWorkbook.Worksheets(shtSheet2).UsedRange
If Not mycell.Value = ActiveWorkbook.WOrksheets(shtSheet1).Cells(mycell.Row, mycell.Column).Value Then
mycell.Interior.Color = vbRed
mydiffs = mydiffs+1
End If
Next
EDIT
die folgenden Vorschläge noch ungenaue Ergebnisse produzieren wurden, damit ich ein paar Werte in den Editor kopiert/eingefügt zu vergleichen, und ich entdeckte, dass ein Blatt einige zufällige Leerzeichen nach dem Wert, der die Daten fr verursachen om Sheet1 to Sheet2 ist niemals identisch.
Verfügt VBA über eine TRIM() - Funktion, die hinzugefügt werden könnte, so dass zufällige Leerzeichen am Ende der Daten im Vergleich keine Rolle spielen?
haben Sie versucht, zu ersetzen (shtSheet1) .Cells (mycell.Row ... mit (shtSheet1) .Range (mycell.Row ...? –
Sie können sehen, in Bezug auf VBA TRIM() Anforderung –
skkakkar