比较两列与其他两列,并find匹配以及不匹配

我想弄清楚如何遍历两个数组,将第二个数组中的所有值与第一个数组中的所有值进行比较,并且对于每个匹配,testing同一行中的列D和列H中的值,都是平等的。

在我的第一个数组中,我有这样的数据。 在这里输入图像说明

在我的第二个数组中,我有这样的数据。 在这里输入图像说明

所以,对于OW细胞,我想比较一下

OW&Reporting实体,并确保两者都是VARCHAR。 这将是这些字段名称的相同数据types的匹配。 另外,对于OW&Currency,两者都是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 

我确信我在代码中过度简化了一些东西,这给了我不正确的结果。 有人能帮我理清这个吗? 无论是非代码function还是VBA解决scheme都可以完成这项工作,我想。

谢谢。

我只是意识到,我实际上需要匹配另外两个列。 下面的function似乎做我想要的。

 =ISNUMBER(MATCH(B2 & "|" & C2 & "|" &D2,$E$2:$E$800 & "|" & $H$2:$H$800 & "|" & $I$2:$I$800,0)) 

我发现这个链接是非常有帮助的。

如果在Excelmacros中另外两列匹配,则比较两列

希望这可以帮助别人。