[英]How do i delete duplicated rows in VBA?
There is this old thread that provides a solution to delete duplicated rows, Delete all duplicate rows Excel vba .But if i use it on the data as shown below, that solution doesn't work as intended.有这个旧线程提供了删除重复行的解决方案, 删除所有重复行 Excel vba 。但是如果我在数据上使用它,如下所示,该解决方案无法按预期工作。 Although i can add.End(xlDown) such that Set rng = Range("A1", Range("E1").End(xlDown).End(xlDown.End(xlDown) to delete the duplicated rows(Device A) that are separated in the screenshot, is there a better way to do it?
虽然我可以 add.End(xlDown) 这样 Set rng = Range("A1", Range("E1").End(xlDown).End(xlDown.End(xlDown) 删除重复的行(设备 A)在屏幕截图中是分开的,有没有更好的方法呢?
Another question that i want to clarify is what is the meaning of rng.RemoveDuplicates Columns:=Array(1, 2)?我想澄清的另一个问题是 rng.RemoveDuplicates Columns:=Array(1, 2) 的含义是什么? Because even if i put it as = Array(1) or even Array(1,2,3,4,5) i realised it will still delete the duplicated rows.
因为即使我把它设置为 = 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
Assuming that each row with data has a non-blank cell in column E, you can set rng like this:假设每行数据在 E 列中都有一个非空白单元格,您可以像这样设置 rng:
Set Rng = Range(Cells(1, 1), Cells(Range("A:A").Rows.Count, 5).End(xlUp))
You can also process the entire columns like this:您还可以像这样处理整个列:
Range("A:E").RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.