2014-03-29 35 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

看到我更新的答案 –