Удалить все повторяющиеся строки Excel vba
У меня есть лист с двумя столбцами: дата и имя. Я хочу удалить все строки, которые являются точными дубликатами, оставив только уникальные значения.
вот мой код (который не работает):
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.Ячейки (счетчик) -1" это, кажется, причина - я получаю "несоответствие типа".
2 ответов
здесь 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