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

У меня есть таблица Excel с 5 столбцами (A: E). Для каждой строки I sh нужно покрасить все столбцы одним и тем же цветом на основе значения в A. Цвета должны быть градиентной шкалой. Столбец А - это формула, которая постоянно обновляется.

У меня есть решение, которое выглядит следующим образом:

  1. Создайте условное форматирование столбца A с цветовой шкалой (от красного до зеленого)
  2. Есть изменения монитора кода VBA на лист и перекрасить ячейки в столбце B: E на основе значений в столбце A.

Макрос выглядит следующим образом:

'Sub to watch value changes
Private Sub Worksheet_Calculate()
    Dim Xrg As Range
    Set Xrg = Range("A2:A19")
    If Not Intersect(Xrg, Range("A2:A19")) Is Nothing Then
        color_filters
    End If
End Sub

'Sub to change colors

Public Sub color_filters()
   Dim i as integer
   Dim j as integer
   'Loop through rows then columns
    For i = 2 To 19
        For j = 2 To 5
            Cells(i, j).Interior.color = Cells(i, 1).DisplayFormat.Interior.color
        Next j
    Next i

End Sub

Значения в A являются обновлениями с плавающей запятой с различными частотами. Значения в столбцах B: E являются подчиненными.

Это решение делает свою работу, но оно подразумевает, что ковчег непрерывно запускает макрос, что мешает пользователю электронной таблицы.

Поэтому я ищу решение, в котором запускается только макрос, когда есть изменения в значениях в столбце A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...