Ich habe 2 Blätter namens orange Buchdaten Warnungen und insgesamt orange Buchdaten Warnungen, beide Blätter haben Daten von A bis M, eindeutigen Wert ist in Spalte A in beiden Blättern. hier vergleiche ich orange Buchdatenwarnungen mit totalen orange Buchdatenwarnungen. Wenn es eine Übereinstimmung gibt, vergleichen Sie die Zeilenzellenwerte für jede Spalte und wenn es einen Unterschied gibt, sollte der Code als Aktualisieren in Blatt orange Buchdatenwarnungen Spalte N geschrieben werden und wenn der eindeutige Wert nicht verfügbar ist, sollte er Neue Eingabe schreiben Spalte N .. Unten ist Code, den ich ausprobiert habe. es funktioniert für, wenn es irgendeine Aktualisierung in den Daten für eine Spalte gibt, ich brauche Hilfe, damit ich alle Spalten vergleichen und als neue Hinzufügung schreiben kann, wenn eindeutiger Wert nicht anwesend ist.Excel VBA Vergleichen zwei Blätter basierend auf eindeutigen Wert
Sub compare10()
Dim w1 As Worksheet, w2 As Worksheet
Dim c As Range, a As Range
Set w1 = Sheets("total orange book data")
Set w2 = Sheets("orange book data alerts")
With w1
For Each c In .Range("a2", .Range("a" & Rows.Count).End(xlUp))
Set a = w2.Columns(1).Find(c.Value, lookat:=xlWhole)
If Not a is nothing then
if.cells(c.row,10).value<>w2.cells(a.row(a.row,10) then
w2.Cells(a.Row, 14).Value = "update"
End If
Next c
End With
End Sub
Sie müssen das hinzufügen Arbeitsblatt erwarten Sie, dass 'Rows.Count' läuft. Ich nehme an, es wird '.Range (" a "& .Rows.Count) .End (xlUp)'. Was ist 'If.Cells (c.Row, 10) ....'? Ich vermute einen Tippfehler beim Einfügen in SO? – BruceWayne
Sie wollen sagen Für jedes c In .Range ("a2", .Range ("a" & Rows.Count) .Ende (xlUp)) sollte .Für jedes c Im Bereich ("a" & .Rows.Count) .End (xlUp) http://stackoverflow.com/users/6701192/partyhatpanda http://stackoverflow.com/users/4650297/brucewayne –