2014-03-29 36 views
1

我有2列。一个有400个元素,另一个有600个元素。第二个列表中的600个元素中有400个在第一个列表中。我想删除所有这些,并最终得到200个元素列表。删除两列中的常见元素

设置差异。

我如何在Excel中实现这个功能?

+0

所以,你要 “干净” 的大清单? –

+0

是的,我们有2个列表。一个有地方参观,另一个有我们已经去过的地方。他们在一本excel书籍的两个不同页面上,我们想从我们仍然需要访问的地方列表中删除我们已经访问过的所有地方。如果这听起来很愚蠢,我很抱歉。 – OHHH

回答

1

假设你的 “400” 名单中列A(表 “realizada”),并在列B “600” 名单(表 “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 
+0

这两列有两张不同的图表,列表A被称为realizada,有400个元素,列表B被称为completa并具有600个元素。我需要使用realizada的数据清理'completa',我如何修改你的代码以适应这种情况。它似乎只适用于同一张表中的列。 – OHHH

+0

看到我更新的答案 –