2016-12-07 10 views
-3

Ich schreibe ein Skript in VBA, die doppelte Zeilen in einer Excel-Tabelle entfernen würde. Ich möchte jedoch, dass doppelte Zeilen gelöscht werden, wobei nur Informationen in zwei Spalten berücksichtigt werden.Entfernen Sie doppelte Zeilen Excel VBA

Mit anderen Worten, ich habe eine Tabelle mit dem Bereich B: F. Ich möchte, dass das Skript doppelte Zeilen entfernt, wobei für jede Zeile nur die Werte der Spalten D und E berücksichtigt werden. Am Ende werden nur Zeilen entfernt, die gleichzeitig die gleichen Werte für die Spalten D und E haben - unabhängig von anderen Spalten . Wie könnte ich das tun? Danke

+1

Zeichnen Sie ein Makro mit Remove Duplicates auf, und mak Es ist dynamisch, um Ihre Bedürfnisse zu erfüllen. –

+2

Eine Möglichkeit, um das Schreiben von Code zu vermeiden, besteht darin, nur die gewünschten Spalten zu verketten (in diesem Fall D und E). Dann filtere nach dieser Verkettung und lösche. Sie können diese verkettete Spalte mit der Formel '= D1 & E1' erstellen und nach unten ziehen. Oder, wenn Sie schauen möchten, ob D und E in jeder Zeile den gleichen Wert haben, würden Sie '= D1 = E1' verwenden und die' TRUE's zum Löschen filtern. – user1274820

Antwort

2

Hier ist ein Beispiel, das dies tut.

Stellen Sie sicher, dass es mit dem Blatt ausführen Sie verwenden möchten:

Sub DeleteDupes() 
Dim x 
For x = Cells(Rows.CountLarge, "D").End(xlUp).Row To 1 Step -1 
    If Cells(x, "D") = Cells(x, "E") Then 
     'This line deletes the row: 
     Cells(x, "D").EntireRow.Delete xlShiftUp 
     'This line highlights the row to show what would be deleted; 
     'Cells(x, "D").EntireRow.Interior.Color = RGB(230, 180, 180) 
    End If 
Next x 
End Sub 

Ergebnisse hervorzuheben:

Results

Ergebnisse löschen:

Results2