如果一个特定列重复下一行中的单词,VBA将删除完整行

时间:2016-01-21 15:22:29

标签: excel vba excel-vba

如果任何单词立即在同一列(E列)中重复但在其他行中,我正在尝试编写一个vba代码来删除一行。如果发生这种情况,要删除的行就是另一个。请按照下面的示例。在这种情况下,要删除的行是:E6,E10和E15。

表单的名称是test。列和F和G无关。

非常感谢!

enter image description here

编辑以添加评论中的代码:

Sub delete_duplicates_column_E()
    With Sheets("test").Range("A:E")
        .Value = .Value
        .RemoveDuplicates Columns:=5, Header:=xlYes
    End With
End Sub

2 个答案:

答案 0 :(得分:0)

刚刚掀起了这个,试试吧:

Sub removeDuplicates() Range("E2").Select Do Until ActiveCell.Value = "" If ActiveCell.Value = ActiveCell.Offset(1).Value Then ActiveCell.EntireRow.Delete (xlShiftUp) End If ActiveCell.Offset(1).Select Loop End Sub

答案 1 :(得分:0)

删除行时最好循环回病房:

Sub delete_duplicates_column_E()
    Dim ws As Worksheet
    Dim lastrow As Long
    Dim i As Long

    Set ws = Sheets("test")
    With ws
        lastrow = .Range("E" & .Rows.Count).End(xlUp).Row
        For i = lastrow To 2 Step -1
            If .Cells(i, 5) = .Cells(i + 1, 5) Then
                .Rows(i).Delete
            End If
        Next i
    End With
End Sub