2016-08-17 64 views
1

[enter image description here 我有2個清單,名字和姓氏,現在我想知道,如果有人在列表1在list2中存在的(參考)EXCEL VBA COMPARING 2 COLUMN

這是我使用右邊的代碼現在,但問題是(圖片2參考資料)

Sub Find_Matches() 
    Dim CompareRange As Variant, x As Variant, y As Variant 

    Set CompareRange = Range("E1:F6") 

    For Each x In Selection 
     For Each y In CompareRange 
      If x = y Then x.Offset(0, 1) = x 
     Next y 
    Next x 
End Sub 

我想要一個結果贊(圖片4參考資料)

,我只得到那些名字和姓氏都一樣

注:在(圖3 & 4)我的代碼變化

Set CompareRange = Range("G2:H7") 
+0

圖片不見了 – Siva

+0

我需要至少10點聲望po st Image :( –

+0

你可以點擊圖片鏈接請:D –

回答

0

你也可以試試這個

Sub Find_Matches() 
    Dim list1 As Range 
    Dim list2 As Range 
    Set list1 = Range("A1:B6") 
    Set list2 = Range("E1:F6") 

    For Each row1 In list1.Rows 
     For Each row2 In list2.Rows 
      If (row1.Cells(1) = row2.Cells(1) And row1.Cells(2) = row2.Cells(2)) Then 
      row1.Cells(1).Offset(0, 2) = row1.Cells(1) 
      row1.Cells(2).Offset(0, 2) = row1.Cells(2) 
      Exit For 
      End If 
     Next row2 

    Next row1 

End Sub 
+0

This Works Too :) Thankyou –

+0

永遠歡迎:) – Siva

3

無需VBA

比方說,您的工作表看起來像這樣

enter image description here

將這個公式單元格C1

=IF(ISERROR(MATCH(A1&"|"&B1,$E$1:$E$6&"|"&$F$1:$F$6,0)),"",A1) 

並按CTRL + SHIFT + ENTER並拖動公式向下。

將這個公式在細胞D1和拉式下降

=IF(C1<>"",B1,"") 

這是最終的結果

enter image description here

邏輯

  1. 我們正在執行兩列查找使用&運算符
  2. 我們使用「|」以防止任何誤報。例如Col B中的「Name1N」Col A和「ame2」,其在連接之後將與「Name1」Col A和「Name2」相同
  3. 在Col D我們正在檢查是否填充了Col C。如果是則簡單地從山口B
  4. 拉的值的第一個公式是數組公式,因此我們使用CTRL + SHIFT + 代替ENTER只是ENTER
+0

謝謝Works精緻:) –