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