【发布时间】:2020-04-14 00:28:09
【问题描述】:
有这个旧线程提供了删除重复行的解决方案,Delete all duplicate rows Excel vba。但如果我在数据上使用它,如下所示,该解决方案无法按预期工作。虽然我可以添加 .End(xlDown) 使得 Set rng = Range("A1", Range("E1").End(xlDown).End(xlDown.End(xlDown) 删除重复的行(设备 A)在屏幕截图中是分开的,有没有更好的方法?
我想澄清的另一个问题是 rng.RemoveDuplicates Columns:=Array(1, 2) 的含义是什么?因为即使我把它设置为 = Array(1) 甚至 Array(1,2,3,4,5) 我意识到它仍然会删除重复的行。
Sub test()
With Worksheets("Output")
Set rng = Range("A1", Range("E1").End(xlDown))
rng.RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
End With
End Sub
【问题讨论】:
-
是的,你可以找到最后一行,如图HERE,然后构建你的范围。
-
@SiddharthRout 但是当我用 End(xlUp) 替换 Set rng = Range("A1", Range("E1").End(xlDown)) 中的 End(xlDown) 时,没有任何反应。 ..
-
找到最后一行,然后使用范围为
Range("A1:E" & LastRow) -
那些是
contain重复信息的列。试试这个实验。录制宏,然后选择您的范围,然后单击Data|Remove Duplicates。现在在对话框中选择 A、C、E 列。完成该过程,然后检查代码。通过选择不同的列并检查代码来重复该过程。这将清楚它是如何工作的:)