Выделите "истинные" значения матрицы
У меня есть таблица в таблице Excel, где х указывает на соответствие продукта и функции. Это очень большая сетка, и ее трудно читать, поэтому, чтобы улучшить отображение, я бы хотел выделить строку для соответствующих продуктов при выборе функции. И когда я выбираю функцию, я бы хотел выделить строку для соответствующих функций.
Если моя таблица выглядит так:
Feature 1|Feature 2|Feature 3|
Product 1| x | x | |
Product 2| x | | x |
Product 3| | x | |
В приведенном выше примере, например, при выборе функции 2 будут выделены строки для продукта 1 и продукта 3. При выборе продукта 1 будут выделены функция 1 и функция 2.
Это может быть выполнено с помощью условного форматирования, или требуется VBA. Я пытался использовать ссылки =CELL("адрес"), но я не могу понять, как заставить его применяться ко всем ИСТИННЫМ продуктам, когда я выбираю функцию (или ИСТИННУЮ функцию, когда я выбираю продукт).
Мой план состоял бы в том, чтобы сделать взаимодействие динамическим со следующим, если я смогу выяснить, как заставить это работать:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
1 ответ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Dim rng As Range, cell As Range
Me.Cells.Interior.Color = xlNone
If Not Intersect(Range("1:1"), Target) Is Nothing Then
Set rng = Intersect(Me.UsedRange, Columns(Target.Column))
If Not rng Is Nothing Then
For Each cell In rng
If cell.Value = "x" Then Me.Cells(cell.Row, 1).Interior.ColorIndex = 8
Next cell
End If
ElseIf Not Intersect(Range("A:A"), Target) Is Nothing Then
Set rng = Intersect(Me.UsedRange, Rows(Target.Row))
If Not rng Is Nothing Then
For Each cell In rng
If cell.Value = "x" Then Me.Cells(1, cell.Column).Interior.ColorIndex = 8
Next cell
End If
Else
Exit Sub
End If
End Sub