2017-07-22 5 views
0

dupliziert enthalten Brauchen Sie Hilfe, habe ich diesen Code unten:Entfernen Zeilen, die Werte

Dim LRAS, matchFoundIndex, iCntr As Long 
LRAS = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row 

For iCntr = 3 To LRAS 
    If Cells(iCntr, 1) <> "" Then 
    matchFoundIndex = WorksheetFunction.Match(Cells(iCntr, 1), Range("A1:A" & LRAS), 0) 
    If iCntr <> matchFoundIndex Then 
     Cells(iCntr, 14) = "Duplicate" 
     'at this point duplicate 
    End If 
End If 

Next iCntr 
'----------- 
Application.Calculation = xlCalculationManual 
Application.EnableEvents = False 
Application.ScreenUpdating = False 
Dim deleteRow As Long 
Dim wrksht As Worksheet 
Set wrksht = ActiveSheet 

For deleteRow = wrksht.Range("N" & Rows.Count).End(xlUp).Row To 3 Step -1 
If wrksht.Range("N" & deleteRow).Value = "Duplicate" Then 
    Rows(deleteRow).EntireRow.Delete 
End If 

Next deleteRow 
Application.Calculation = xlCalculationAutomatic 
Application.EnableEvents = True 
Application.ScreenUpdating = True 

Dieser Code basicly doppelte Werte suchen dann sagt, dass die Werte doppelt sind. Der nächste Schritt besteht darin, dass das zweite duplizierte Objekt gelöscht wird. Ich möchte diese Build in einem Ereignis statt zwei getrennten Ereignissen haben. Gibt es eine Möglichkeit, dies zu tun? Oder gibt es eine andere Möglichkeit, doppelte Zeilen basierend auf dem Wert in der ersten Spalte zu löschen?

Antwort

2

Ich denke, alles was Sie brauchen eine Aussage ist:

Cells.RemoveDuplicates 1 

wo 1 die erste Spalte angeben, A, wo die Duplikate geprüft werden soll und entfernt.

Wenn die Tasten viele Spalten verteilt, sagen Spalten 1 und 3, Duplikate nach diesen Spalten wie folgt entfernen:

Cells.RemoveDuplicates Array(1, 3) 
+0

Dank, ich werde dies aus, um zu versuchen .. – Tarik