VBA – RemoveAllDuplicateButOne()

我有一个有18000个客户的数据表。 这个列表中的大约10%是同一个客户的重复,有时它们被重复多次。

我想使用VBA来查找所有重复项,并删除整个行的数据; 只留下一个数据行(1个客户)。

我在网上遇到这个代码:

Sub RemoveAllDuplicateButOne() Dim LR As Long: LR = Range("A" & Rows.Count).End(xlUp).Row ActiveSheet.Range("A1:A" & LR).RemoveDuplicates Columns:=1, Header:=Name End Sub 

但是,这个VBA代码将只删除行A中的删除重复项,并将删除该列,并将列从下面的行移动到刚被删除的列空间中。 意味着你有各种各样的客户数据混合。

我已经尝试了下面的代码,但它不适合我:

 ActiveSheet.Range("A1:W1800").RemoveDuplicates Columns:=Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19), Header:=xlYes 

我可以用作标识符的列是列A(IP地址),Coumn G(电子邮件地址),列H(电话号码)。 理想情况下,我想首先使用列G,然后H,然后A运行VBA。

为了澄清我想删除一个确定的重复整行。

我很抱歉,如果这似乎是一个愚蠢的问题,或者也许复杂,我不知道,但我已经四处search,我无法find答案。 任何帮助将不胜感激。 谢谢

你只需要指出要参考的列而不是全部。 如果你使用macros录像机,那么它会给出如下输出:

ActiveSheet.Range("$A$1:$W$1800").RemoveDuplicates Columns:=Array(1, 7, 8), _ Header:=xlYes

需要调整的是最后一行,可以从您在networking上find的代码中提取。