首页 > 解决方案 > 根据另一个单元格中的值不断更新一个单元格的颜色

问题描述

我有一个 5 列 (A:E) 的 Excel 电子表格。对于每一行,我希望根据 A 中的值将所有列着色为相同的颜色。颜色应该是渐变比例。A 列是一个不断更新的公式。

我有一个这样的解决方案:

  1. 使用色标(红色到绿色)对 A 列进行条件格式设置
  2. 让 vba 代码监视工作表的更改,并根据 A 列中的值重新着色 B:E 列中的单元格。

宏如下所示:

'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 列中的值发生更改时运行宏。

标签: excelvba

解决方案


推荐阅读