Excel VBA выделяет ячейку, в которой строки и столбцы соответствуют двум листам

Листы, которые у меня есть

Привет всем. У меня есть два столбца в листе1 с несколькими строками и теми же столбцами в листе2, но в значениях листа2 второго столбца заголовок столбца, я хочу выделить ячейку в листе2, где значения соответствуют листу1. Спасибо заранее, я надеюсь, что это ясно. Скриншоты также прилагаются. Я пишу следующий код, но это работает неправильно. Спасибо за помощь

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

Всего 1 ответ


С помощью вспомогательного столбца 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

Возможно, вам придется настроить эти диапазоны, но это сработало для меня:

введите описание изображения здесь


Есть идеи?

10000