Excel VBA高亮显示行和列与2张图纸匹配的单元格

Excel VBA高亮显示行和列与2张图纸匹配的单元格,excel,vba,loops,match,Excel,Vba,Loops,Match,大家好,我在sheet1中有两列,有多行,在sheet2中有相同的列,但在sheet2中,第2列的值成为列标题,我想突出显示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

大家好,我在sheet1中有两列,有多行,在sheet2中有相同的列,但在sheet2中,第2列的值成为列标题,我想突出显示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
使用辅助列C(
=CONCAT($A2,$B2)
),您可以通过条件格式实现这一点

设置助手列:

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

规则:

适用于以下范围:

=$F$3:$K$8
您可能需要调整这些范围,但这对我很有效:


在第一个表中,第二行应该是
语言2 | Jave
?或者确实是
Language 1 | Jave
?**Language 1 Java,行可以重复,但如果您在组合时需要唯一的值,我们可以添加第三列,也可以在
表1
上创建两个命名范围,第一列用于
Language 1
Language 2
等列表(我将其命名为
listLanguageHeaderA
,第二个命名为
Java
Jave
等列表(我将其命名为
listLanguageHeaderB
)。然后在
Sheet2
的B2单元格中使用此条件格式公式:
=COUNTIFS(listLanguageHeaderA,$A2,listLanguageHeaderB,B$1)>0
并将条件格式应用于范围:
=$B$2:$G$7
…或者您可以这样做@tigeravatar:PThanks Bruce感谢您的帮助,它正在工作。是否可能,如果某些单元格已经用蓝色突出显示,那么我不会在这些单元格上应用格式?@Dani是什么使它们变成蓝色的(这是为什么的逻辑)?这些被手动突出显示为蓝色无蓝色逻辑我的意思是如果单元格已经突出显示为蓝色,则不在这些单元格上应用格式化您可以说如果课程中断,则用蓝色突出显示,但我们不希望为断开的课程添加列我有2张excel表格。表格1有以下记录:沙龙教练日期amCount Sal1 col1 11/7/2018 500 Sal1 col1 11/1/2018 400 Sal1 col1 10/25/2018 600 Sal1 col1 10/19/2018 700 Sal1 col1 10/1/2018 250等表2有以下记录和记录:沙龙教练最近4天Sal1 col1的平均值??我想找到最近4次约会的平均金额,符合标准沙龙和教练。提前谢谢。
=$F$3:$K$8