Ich bin neu hier und bei VBA. Meine Frage lautet:vba: Spalten vergleichen und nicht übereinstimmende Werte zurückgeben
Ich habe 3 Blätter (1, 2 und 3). Bei sheet 1
habe ich Spalte A (Bereich A2-Ende) mit Daten, die ich mit Spalte A (Bereich A2-Ende) und D (Bereich D2-Ende) auf sheet 2
vergleichen möchte. Wenn ein Wert in sheet 1
Spalte A nicht auf sheet 2
Spalte A und D gefunden wird, sollte er den mismatched
Wert in Blatt 3 ab dem Bereich A2 auflisten. Hier
ist, was ich habe:
Sub Makro5()
Dim lastRowE As Integer
Dim lastRowF As Integer
Dim lastRowM As Integer
Dim foundTrue As Boolean
Application.ScreenUpdating = False
lastRowE = Sheets("1").Cells(Sheets("1").Rows.Count, "A2").End(xlUp).row
lastRowE = Sheets("2").Cells(Sheets("2").Rows.Count, "A2").End(xlUp).row
lastRowF = Sheets("2").Cells(Sheets("2").Rows.Count, "D2").End(xlUp).row
lastRowM = Sheets("3").Cells(Sheets("3").Rows.Count, "A2").End(xlUp).row
For i = 1 To lastRowE
foundTrue = False
For j = 1 To lastRowF
If Sheets("1").Cells(i, 1).value = Sheets("2").Cells(j, 1).value Then
foundTrue = True
and
If Sheets("1").Cells(i, 1).value = Sheets("2").Cells(j, 4).value Then
foundTrue = True
Exit For
End If
Next j
If Not foundTrue Then
Sheets("3").Rows(i).Copy Destination:= _
Sheets("3").Rows(lastRowM + 1)
lastRowM = lastRowM + 1
End If
Danke. Das funktioniert perfekt – manonfire
Wenn meine Eingabedaten in Blatt 1, Bereich A2: A bestehen aus Nur 1 Zeile, dann debuggt diese Zeile "Für r = 2 To UBound (colA1) 'vals von Sheet1.colA im Wörterbuch d1." Ich bekomme Laufzeitfehler' 13 'Typ Mismatch. Wissen Sie, ob es einen Weg gibt um das zu beheben? – manonfire
Ich aktualisierte den Code, um alle Arrays zu überprüfen - wenn eine der Spalten nur eine Zeile enthält, wird die Variable in ein 2D-Array konvertiert –