Excel 从两列中删除公共元素
我有两个专栏。一个有400个元素,一个有600个元素。第二个列表中的600个元素中有400个在第一个列表中。我想删除所有这些元素,最后得到一个200个元素的列表 设置差异 如何在Excel中实现这一点?假设您的Excel 从两列中删除公共元素,excel,vba,Excel,Vba,我有两个专栏。一个有400个元素,一个有600个元素。第二个列表中的600个元素中有400个在第一个列表中。我想删除所有这些元素,最后得到一个200个元素的列表 设置差异 如何在Excel中实现这一点?假设您的A列中的“400”列表(表“realizada”)和B列中的“600”列表(表“completa”): 所以你想“清理”更大的列表??是的,我们有两个列表。一个是要参观的地方,一个是我们已经参观过的地方。它们位于excel手册的两个不同页面上,我们希望从仍然需要访问的地方列表中删除所有已经
A列中的“400”列表(表“realizada”)和B列中的“600”列表(表“completa”):
所以你想“清理”更大的列表??是的,我们有两个列表。一个是要参观的地方,一个是我们已经参观过的地方。它们位于excel手册的两个不同页面上,我们希望从仍然需要访问的地方列表中删除所有已经访问过的地方。如果这听起来很愚蠢,我很抱歉。这两列在两个不同的表中,列表A称为realizada,有400个元素,列表B称为completa,有600个元素。我需要使用realizada中的数据清理“completa”,如何修改您的代码以适应这种情况。它似乎只适用于同一工作表中的列。
Sub test()
Dim lastrow As Long
Dim rngToDel As Range, c As Range
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("realizada").Range("A:A")
With ThisWorkbook.Worksheets("completa")
lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row
For Each c In .Range("B1:B" & lastrow)
If Not IsError(Application.Match(c.Value, rng, 0)) Then
If rngToDel Is Nothing Then
Set rngToDel = c
Else
Set rngToDel = Union(rngToDel, c)
End If
End If
Next
End With
rngToDel.Select
If Not rngToDel Is Nothing Then rngToDel.Delete Shift:=xlShiftUp
End Sub