2017-07-24 123 views
1

我想弄清楚如何循環兩個數組,比較第二個數組中的所有值到第一個數組中的所有值,並且對於每個匹配,測試列D和列H中同一行中的值是否相等。比較兩列與其他兩列,並找到匹配以及不匹配

在我的第一個數組中,我有這樣的數據。 enter image description here

在我的第二個數組中,我有這樣的數據。 enter image description here

所以,對於OW細胞,我想比較

OW &報告實體,並確保兩者都是VARCHAR。這將是這些字段名稱的相同數據類型的匹配。另外,對於OW &貨幣,兩者都是VARCHAR,所以再次匹配。對於OW & CID_CounterpartyID,我看到Integer和VARCHAR,所以這不是匹配,我想知道這一點。

我試圖把一些東西放在一起來做到這一點,我在下面顯示我的代碼,但這絕對不行。

Sub CompareFinal() 

    Dim r1 As Range 
    Dim r2 As Range 
    Dim cell As Range 
    Dim lastrow As Long 

    ' All Rows in First Array 
    With ThisWorkbook.Worksheets("Data Validation") 
     lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 
     Set r1 = .Range("A2:A" & lastrow) 
    End With 

    ' All rows in Second Array 
    With ThisWorkbook.Worksheets("Data Validation") 
     lastrow = .Cells(.Rows.Count, "E").End(xlUp).Row 
     Set r2 = .Range("E2:E" & lastrow) 
    End With 

    ' Loop through Second Array, which will bequual to or longer than First Array 
    For Each cell In r2 
     If IsError(Application.Match(cell, r1, 0)) Then 
      cell.Offset(, 5) = "Match" 
     Else 
      cell.Offset(, 5) = "NoMatch" 
     End If 
    Next cell 

End Sub 

我敢肯定,我囫圇吞棗的代碼的東西,這是給我不正確的結果。有人能幫我理清這個嗎?我認爲,無論是非代碼功能還是VBA解決方案都可以完成這項工作。

謝謝。

+0

請添加您的代碼。 – Cyril

+0

只要看看你說你想做什麼...... = D1 = H1(非VBA)將輸出真/假的同一行,在列D和H中具有相同的值。這將是最簡單的方法,我可以認爲...我爲條件格式做了很多工作,而不是專門用於True/False的專欄。需要更深入地瞭解格式比較。 – Cyril

+0

我剛剛發佈了代碼。忘了把它包括在我原來的帖子裏。 – ryguy72

回答

相關問題