比较列并使用Excel VBA突出显示匹配数据

时间:2013-08-27 11:56:58

标签: vba excel-vba excel

我需要将Column B中的Sheet 2Column C中的Sheet 3进行比较,并在Column B (Sheet 2)中突出显示匹配数据的单元格。

条件格式

中使用了以下公式

使用格式类型为

=NOT(ISNA(VLOOKUP(Sheet3!C,Sheet2!B,1,FALSE)))

特殊颜色说黄色Interior.colorindex = 6

如何在VBA中使用代码实现相同的功能?

2 个答案:

答案 0 :(得分:1)

你可以这样做

Sub CompareAndHighlight()

    Dim rng1 As Range, rng2 As Range, i As Long, j As Long
    For i = 1 To Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row
        Set rng1 = Sheets("Sheet2").Range("B" & i)
        For j = 1 To Sheets("Sheet3").Range("C" & Rows.Count).End(xlUp).Row
            Set rng2 = Sheets("Sheet3").Range("C" & j)
            If StrComp(Trim(rng1.Text), Trim(rng2.Text), vbTextCompare) = 0 Then
                rng1.Interior.Color = RGB(255, 255, 0)
            End If
            Set rng2 = Nothing
        Next j
        Set rng1 = Nothing
    Next i

End Sub

代码检查Sheet2列B中与Sheet3列C中的每个单元格相关的所有单元格,如果它们匹配,则高亮显示B列中Sheet2上的单元格

答案 1 :(得分:1)

我会这样做:

Dim c As Range

For Each c In Range("sheet2!b:b")
    If c.Value <> "" And Sheets("Sheet3").Cells(c.Row, 3).Value = c.Value Then
        c.Interior.Color = vbYellow
    End If
Next