在excel中删除重复的行,并将删除的单元格留空

时间:2018-07-04 12:21:28

标签: excel excel-vba vba

我有一个工作表,其中包含约600多行数据和20列。 C列(客户编号)和D列(信用额度)中的许多值都是重复的,我想删除这些重复的内容。我可以使用

删除C列中重复的客户编号的问题
=IF(C3="","",IF(COUNTIF($C2:C657,C3)=1,C3,"")

...但是我无法在Col D中使用相同的代码,因为许多客户将具有相同的CL限制。

是否存在通过将条件指定为Col C来对工作表中Col C和D中的每个数据执行此操作的方法?我想它涉及“ For Each ...”,但是我对此没有很多经验,也无法找到其他任何可以完成此任务的宏。让我知道您是否需要我详细说明我要完成的工作。

当前数据:

Super Customer Number   Super Cust Credit Limit Super Cust Balance 
12345   7,000,000   3954758.62
12345   7,000,000   3954758.62
12345   7,000,000   3954758.62
12345   7,000,000   3954758.62
12345   7,000,000   3954758.62
123456  6,000,000   4634651.09
100136  2,000,000   681500
100131  8,000,000   9159719.01
100131  8,000,000   9159719.01

数据应在运行宏之后:

Super Customer Number   Super Cust Credit Limit Super Cust Balance 
12345   7,000,000   3954758.62
12345       
12345       
12345       
12345       
123456  6,000,000   4634651.09
123456  2,000,000   681500
100131  8,000,000   9159719.01
100131      

1 个答案:

答案 0 :(得分:0)

 Sub KillEm
 dim c as range
 dim lastrow as long
 lastrow = cells(rows.count,3).end(xlup).row
 set c = range("c2")
 c.currentregion.sort key1:=c,key2:=c.offset(0,1)
 Do
 if c = c.offset(1,0) and c.offset(0,1)=c.offset(1,1) then
      c.offset(1,0).entirerow.clearcontents
      set c = c.offset(1,0)
 end if
 set c = c.offset(1,0)
 Loop until c.row > lastrow