Подсветка ячеек на основе значений активных строк - PullRequest
0 голосов
/ 29 января 2020

Я застрял при попытке заставить свой лист выделить значения в строке 2 на основе значений строки активных ячеек, в этом случае я сравниваю ячеек "B2: F2" с активными Строка (B3: F3) в этом случае. Вот как выглядит лист перед выбором активной ячейки / строки;

enter image description here

и после выбора активной ячейки (в данном случае я выбрал ячейка "A3" ) и хотел бы сравните значения "B3: F3" со строкой stati c (B2: F2) и выделите все ячейки в строке stati c (B2: F2) , которые отличаются от значений активной строки. На следующем снимке экрана показано, как должен выглядеть лист, если я выберу ячейку "A3" в качестве активной ячейки и получу комбинацию кода / условного форматирования, сравниваем ее со значениями строки stati c;

enter image description here

Пока у меня есть этот код, который выделяет активную ячейку, которую я выбираю, это моя отправная точка:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static xLastRng As Range
On Error Resume Next
Target.Interior.ColorIndex = 6
xLastRng.Interior.ColorIndex = xlColorIndexNone
Set xLastRng = Target
End Sub

Пожалуйста, дайте мне знать, если что-то не имеет смысла и ваши предложения, спасибо!

1 Ответ

2 голосов
/ 29 января 2020

Возможно следующее - в основном сравнивайте свой фиксированный диапазон B2:F2 с соответствующим диапазоном в текущей строке:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.Range("B2:F2").Interior.Color = xlNone 'clear previous coloring

    Dim rng As Range
    For Each rng In Me.Range("B2:F2")
        If IsNumeric(rng.Value) And IsNumeric(Me.Cells(Target.Row, rng.Column)) Then
            If rng.Value <> Me.Cells(Target.Row, rng.Column).Value Then
                rng.Interior.Color = vbYellow
            End If
        End If
    Next
End Sub
...