尝试删除与VBA中的值相同的单元格的行

我正在尝试使用A列删除重复的logging,我似乎有一些成功,但我仍然发现重复。 希望有人会告诉我,我可以做些什么来改善这一点。

谢谢

Dim i As Integer Dim value As String i = 3 Range("A" & i).Select Do Until IsEmpty(ActiveCell) Range("A" & i).Select value = ActiveCell.value Do Until IsEmpty(ActiveCell) If ActiveCell.value = value Then ActiveCell.EntireRow.Delete Else ActiveCell.Offset(1, 0).Select End If Loop i = i + 1 Loop 

我相信,如果您删除所有A列的重复项并且没有标题行,则以下内容适用于您:

 ActiveSheet.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlNo 

避免使用select和active cell。

使用一个向后循环的For循环。

 Dim i As Long Dim ws As Worksheet Set ws = ActiveSheet 'This can be changed to a specific sheet: Worksheets("sheetName") With ws For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 3 Step -1 If .Cells(i, 1).value = .Cells(i - 1, 1).value Then .Rows(i).Delete End If Next i End With 

这只会比较上面的值。 如果你想删除所有重复使用@ Petay87答案。

当你删除一行时,你需要反向循环。 尝试下面的代码,

 Sub removeDupes() Dim i As Long For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row If Range("A" & i).Value = Range("A" & i + 1).Value Then Range("A" & i + 1).ClearContents End If Next i For i = Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1 If IsEmpty(Range("A" & i)) Then Range("A" & i).EntireRow.Delete End If Next i End Sub