删除所有重复的行Excel vba

我有一个工作表,有两列:date和名称。 我想删除完全重复的所有行,只保留唯一的值。

这是我的代码(不起作用):

Sub DeleteRows() Dim rng As Range Dim counter As Long, numRows As Long With ActiveSheet Set rng = ActiveSheet.Range("A1:B" & LastRowB) End With numRows = rng.Rows.Count For counter = numRows To 1 Step -1 If rng.Cells(counter) Like rng.Cells(counter) - 1 Then rng.Cells(counter).EntireRow.Delete End If Next End Sub 

这是“像rng.Cells(计数器)-1”似乎是原因 – 我得到“types不匹配”。

有一个可以使用的RemoveDuplicates方法:

 Sub DeleteRows() With ActiveSheet Set Rng = Range("A1", Range("B1").End(xlDown)) Rng.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes End With End Sub 

任何列中的重复值都可以用简单的for循环删除。

 Sub remove() Dim a As Long For a = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 If WorksheetFunction.CountIf(Range("A1:A" & a), Cells(a, 1)) > 1 Then Rows(a).Delete Next End Sub