从Excel VBA中删除重复行

从Excel VBA中删除重复行,vba,excel,Vba,Excel,我正在用VBA编写一个脚本,可以删除Excel电子表格中的重复行。但是,我希望它删除重复的行,只考虑两列中的信息 换句话说,我有一个范围为B:F的表。我希望脚本删除重复的行,因为对于每一行,只考虑D列和E列上的值。最后,只删除同时在D列和E列上具有完全相同值的行(不管其他列如何)。我怎么能这样做呢?谢谢这里有一个这样做的例子 确保使用要用完的工作表运行: Sub DeleteDupes() Dim x For x = Cells(Rows.CountLarge, "D").End(xlUp).R

我正在用VBA编写一个脚本,可以删除Excel电子表格中的重复行。但是,我希望它删除重复的行,只考虑两列中的信息


换句话说,我有一个范围为B:F的表。我希望脚本删除重复的行,因为对于每一行,只考虑D列和E列上的值。最后,只删除同时在D列和E列上具有完全相同值的行(不管其他列如何)。我怎么能这样做呢?谢谢

这里有一个这样做的例子

确保使用要用完的工作表运行:

Sub DeleteDupes()
Dim x
For x = Cells(Rows.CountLarge, "D").End(xlUp).Row To 1 Step -1
    If Cells(x, "D") = Cells(x, "E") Then
        'This line deletes the row:
        Cells(x, "D").EntireRow.Delete xlShiftUp
        'This line highlights the row to show what would be deleted;
        'Cells(x, "D").EntireRow.Interior.Color = RGB(230, 180, 180)
    End If
Next x
End Sub
突出显示的结果:

删除结果:


使用“删除重复项”录制宏,然后使其动态化以满足您的需要。避免编写代码的一种方法是只连接所需的列(在本例中为D和E)。然后,通过该连接进行过滤并删除。可以使用公式
=D1&E1
并向下拖动来创建此连接列。或者,如果要查看每行上的D和E是否相同,可以使用
=D1=E1
并过滤要删除的
TRUE