我在excel的两列中有以下数据:
AB CD
EF GH
CD AB
GH EF
如果column1中的值与column2中的任何单元格匹配,则应删除该行。从单元格A1开始,在B3中发现重复值,因此删除了第三行。转到A2,在B4中找到重复的值,因此删除了第四行。
输出应为
AB CD
EF GH
答案 0 :(得分:0)
尝试一下...
Dim firstCell as Range
Dim secondCell as Range
For Each firstCell in Intersect(ActiveSheet.UsedRange, Range("A:A"))
For Each secondCell in Intersect(ActiveSheet.UsedRange, Range("B:B"))
If firstCell.Value = secondCell.Value Then
secondCell.EntireRow.Delete
End If
Next
Next
答案 1 :(得分:0)
我知道,当我遇到这些情况时,总是总是踢自己删除数据。我总是提倡更彻底地测试数据,然后才决定终止某些操作。因此,即使我认为VBA方法很优雅,我还是会先采用方程式方法,并给自己一些容易进行大规模删除的标记。下面的方程式,如图所示。
C列测试这是否是第一次出现的数据:
=IFERROR(IF(ROW(A2)<MATCH(A2,B:B,0),"First","Duplc"),"First")
D列,测试这是否是第一次出现数据:
=IFERROR(IF(ROW(B2)<MATCH(B2,A:A,0),"First","Duplc"),"First")
E列,测试数据的第一/第一,重复/重复或新的单次出现:
=IF(AND(C2="First",D2="First"),"Keep",IF(AND(C2="Duplc",D2="Duplc"),"Delete","Review"))
每当我看到“评论”单元格时,我都会进行测试以确保不删除有价值的数据点。您的数据可能比我在这里做的要简单,但是我很后悔超级强大的批量删除功能。