用于比较和突出显示区分大小写的数据的宏

时间:2017-01-16 18:10:34

标签: excel vba excel-vba

我遇到了一个宏,它将B列中粘贴的数据与A列进行比较,如果不是与A列完全匹配则突出显示B列。

Sub HighlightNoMatch()
    Dim r As Long
    Dim m As Long
    m = Range("B" & Rows.Count).End(xlUp).Row
    Range("B1:B" & m).Interior.ColorIndex = xlColorIndexNone
    For r = 1 To m
        If Evaluate("ISERROR(MATCH(TRUE,EXACT(B" & r & ",$A$1:$A$30),0))") Then
            Range("B" & r).Interior.Color = vbRed
        End If
    Next r
End Sub

如何更改代码以实现如下 -

我希望代码在sheet2上突出显示列F,如果它与sheet1上B列中的数据不完全匹配。“

1 个答案:

答案 0 :(得分:0)

我会循环遍历范围内的每个值并检查匹配项,而不是固定范围($ A $ 1:$ A $ 30):

    Sub HighlightNoMatch()
        Dim t As Long
        Dim m As Long

        m = Worksheets("Sheet2").Range("F" & Rows.Count).End(xlUp).Row
        t = Worksheets("Sheet1").Range("B" & Rows.Count).End(xlUp).Row

        Worksheets("Sheet2").Range("F1:F" & m).Interior.ColorIndex = xlColorIndexNone
        For x1 = 1 To m
            For x2 = 1 To t
                If Worksheets("Sheet2").Range("F" & x1).Value = Worksheets("Sheet1").Range("B" & x2).Value Then
                    Exit For
                ElseIf Worksheets("Sheet2").Range("F" & x1).Value <> Worksheets("Sheet1").Range("B" & x2).Value And x2 = t Then
                    Worksheets("Sheet2").Range("F" & x1).Interior.Color = vbRed
                End If
            Next x2
        Next x1
    End Sub