Excel SVerweise. Von Tabelle 1 alle Zeilen mit identischen Daten die in Tabelle 2 vorhanden sind löschen?

... komplette Frage anzeigen

1 Antwort

Mit VBA:



Sub test()

Dim zelle As Range
Dim varArr As Variant


varArr = WorksheetFunction.Transpose(Sheets("Tabelle1").Range("A1:A6"))

For i = LBound(varArr) To UBound(varArr)

For Each zelle In Sheets("Tabelle2").Range("A1:A17")

If zelle.Value = varArr(i) Then zelle.ClearContents

Next zelle

Next i

Sheets("Tabelle2").Range("A1:A17").SpecialCells(xlCellTypeBlanks).EntireRow.Delete


End Sub

Die Ranges und Sheet-Namen entsprechend deinen Vorgaben anpassen. Der Umweg über vorher Clearcontents ist in dem Falle nötig weil:

Durch das aktive Löschen während der for each Schleife verschieben sich natürlich die Referenzen, Zeilen rutschen also in Bereiche, die bereits überprüft worden sind. Daher der Umweg, erst Inhalte leeren, dann leere Zellen löschen.

In Tabelle1 stehen die Inhalte, die als Vorgabe zum Löschen der Inhalte der Tabelle2 dienen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von augsburgchris
06.09.2016, 15:40

Alternativ könntest du die Schleife von unten laufen lassen und die ganze Zeile löschen. Aber ClearContents ist definitiv performanter als Delete.

1

Was möchtest Du wissen?