EXCEL VBA-比较不同工作表中的列,突出显示不重叠的内容

所以,我是VBA的新手,所以很简单。

我有两个不同的工作表 – 合并圣诞节代码和2007 – 2011年圣诞节代码。 我想遍历2007 – 2011年代码(列B)中的所有值,并将其与合并圣诞代码A列中的值进行比较。 我想突出显示2007 – 2011年代码中的内容,但不是合并的圣诞代码。

我试着用这个VBAmacros:

Dim ws1 As Worksheet Dim ws2 As Worksheet Dim ws3 As Worksheet Set ws1 = Worksheets("2002-2006 Nativity Codes") Set ws2 = Worksheets("Merged Nativity Codes") Set ws3 = Worksheets("2007-2011 Nativity Codes") For Each i In ws3.Range("B2:B154") For Each C In ws2.Range("A1:A138") If i.Cells.Value <> C.Cells.Value Then i.Cells.Interior.ColorIndex = 3 End If Next C Next i 

但问题是,“如果i.Cells.Value <> C.Cells.Value Then”将被触发,如果只有一个不匹配。 我正在寻找Python中的“all()”函数。 这是否存在? 更简单的方法来做到这一点?

通过简单的方式回答我自己的问题。 我首先用红色突出显示了感兴趣的列。 然后,我改变了macros在CLEAR列中的颜色,如果它find了一个匹配(而不是如果它找不到一个红色着色)。

**注意 – 我是新来的这个东西,所以如果你们有更有效的方式来回答这个问题,我很乐意学习。 我觉得vLookUp可能是有用的。

 For Each i In ws1.Range("B2:B154") For Each C In ws2.Range("A1:A138") If i.Cells.Value = C.Cells.Value Then i.Cells.Interior.ColorIndex = xlNone End If Next C Next i