Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 查找重复项并删除整行(使用Do While和If循环)_Excel_Vba_Duplicates - Fatal编程技术网

Excel 查找重复项并删除整行(使用Do While和If循环)

Excel 查找重复项并删除整行(使用Do While和If循环),excel,vba,duplicates,Excel,Vba,Duplicates,我有需要删除重复项的大型数据集。数据有一个包含ID号的列-我想在这个列中循环查找重复的ID。如果存在副本,我希望代码删除副本 我正在使用的数据集始终具有相同的列-但我将使用的行数会发生变化: 执行While单元格(b,4)。值“” 然后,在这个循环中,我需要一个If循环来查找重复项并删除它们-如何最好地做到这一点?正如Scott Craner所提到的,有一个基本的Excel功能来处理这个问题 我的Excel表如下所示: Col_D Col_E 1 1 1 1

我有需要删除重复项的大型数据集。数据有一个包含ID号的列-我想在这个列中循环查找重复的ID。如果存在副本,我希望代码删除副本

我正在使用的数据集始终具有相同的列-但我将使用的行数会发生变化:

执行While单元格(b,4)。值“”


然后,在这个循环中,我需要一个If循环来查找重复项并删除它们-如何最好地做到这一点?

正如Scott Craner所提到的,有一个基本的Excel功能来处理这个问题

我的Excel表如下所示:

Col_D Col_E
    1     1
    1     1
    1     2
    1     2
    1     3
    2     1
    2     2
    2     2
    2     2
    2     3
从“数据”选项卡记录“删除重复项”时,会生成以下VBA命令:

ActiveSheet.Range("$D$1:$E$11").RemoveDuplicates Columns:=Array(1, 2), Header :=xlYes
含义如下:

Range("$D$1:$E$11")  : Remove the duplicates from that range
Columns:=Array(1, 2) : Both column 1 (D) and 2 (E) need to be taken into account
                         (the duplicates of the combination of both columns)
Header :=xlYes       : A header row is present
结果是:

Col_A Col_B
    1     1
    1     2
    1     3
    2     1
    2     2
    2     3

听起来你在重新发明轮子。使用“删除重复项”,它位于“数据”选项卡上。@BigBen非常正确,我认为这可以工作-但是,由于我无法定义范围,您建议我仍然使用Do While循环吗?我猜您需要这样做。@ScottCraner也许我应该更清楚,这将是工具的一部分-用户将按下按钮,代码将清除数据(部分内容是删除重复项)干杯-我将在我的代码中使用删除重复项函数。我试图解决的唯一问题是如何将此函数应用于代码中未定义最后一行的数据集。我想我需要使用:I=.Range(“E”&.Rows.Count)。End(xlUp)。row ActiveSheet.Range(“a”&I)