【发布时间】:2013-06-13 13:39:30
【问题描述】:
下面的代码目前正在删除 A 列中的所有重复项,包括原始代码。我想修改下面的代码以删除基于 A、B、C 和 D 列的所有重复项。澄清一下,对于行1 和 2 如果列 A 匹配,B 匹配,c 匹配和 d 匹配两行将被删除。有人可以提供帮助吗?我相信这里需要一个数组,但不确定如何。谢谢!
Dim toDel5(), p As Long
Dim RNG5 As Range, Cell5 As Long
Set RNG5 = Range("a1:a4000") 'set your range here
For Cell5 = 1 To RNG5.Cells.Count
If Application.CountIf(RNG5, RNG5(Cell5)) > 1 Then
ReDim Preserve toDel5(p)
toDel5(p) = RNG5(Cell5).Address
p = p + 1
End If
Next
On Error GoTo NO_DUPLICATES
For p = UBound(toDel5) To LBound(toDel5) Step -1
Range(toDel5(p)).EntireRow.Delete
Next p
On Error GoTo 0
End With
NO_DUPLICATES:
【问题讨论】:
-
如果你使用的是 xl2007+ 那么你可以使用
RemoveDuplicates
标签: arrays excel vba duplicates