首页 > 解决方案 > Excel VBA突出显示行和列与2张匹配的单元格

问题描述

我有的床单

大家好,我在 sheet1 中有两列,其中有多行,在 sheet2 中有相同的列,但是在 sheet2 中,第二列的值变成列标题,我想突出显示 sheet2 中值与 sheet1 匹配的单元格。在此先感谢,我希望它说清楚。还附上截图。我编写了以下代码,但这不能正常工作。谢谢你的帮助

Public Sub test3()

Dim rng As Range
Dim aNumber As Range
Dim bNumber As Range
Dim rng2 As Range
Dim LastColumn As Long
Dim iRow As Long
Dim iCol As Long
Set rng = Sheets("Sheet2").Range("B2:B" & Range("B" & Rows.Count).End(xlUp).row)
LastColumn = Sheets("Sheet2").Range("D1").CurrentRegion.Columns.Count
Set rng2 = Sheets("Sheet2").Range(Cells(1, 1), Cells(1, LastColumn))
'MsgBox rng2.Address
For iRow = 2 To 6 'this i need last row count
For iCol = 2 To 6 ''this i need last row count
    Set aNumber = Sheets("Sheet1").Cells(iRow, 1) 'Row, Column Searching A
    Set bNumber = Sheets("Sheet1").Cells(iCol, 2) 'Row, Column Searching B

    If Application.WorksheetFunction.CountIf(rng, aNumber) > 0 Then
    If Application.WorksheetFunction.CountIf(rng2, bNumber) > 0 Then

        ColNum = Application.WorksheetFunction.Match(bNumber, rng2, 0)
        RowNum = Application.WorksheetFunction.Match(aNumber, rng, 0)
        'MsgBox (RowNum + 1)
        'MsgBox (ColNum)
        Sheets("Sheet2").Cells(RowNum + 1, ColNum).Interior.Color = vbGreen
    Else
        'MsgBox aNumber & " does not exist in range " & rng.Address
    End If
    End If
Next iCol
Next iRow
End Sub

标签: excelvbaloopsmatch

解决方案


使用辅助列 C ( =CONCAT($A2,$B2)),您可以使用条件格式来执行此操作。

设置您的助手列:

在此处输入图像描述

然后,设置一个新的条件格式规则。

规则:

=IF(ISERROR(INDEX($C$3:$C$8,MATCH(CONCAT($E3,F$2),$C$3:$C$8,0))),FALSE,TRUE)

适用范围:

=$F$3:$K$8

您可能需要调整这些范围,但这对我有用:

在此处输入图像描述


推荐阅读