具有更改值和多个单元格的真实条件格式规则

True Conditional Formatting Rule with changing values and multiple cells

经过几个小时的研究和失败的尝试,我终于决定自己问这个问题。

我想对特定单元格应用 3 组规则,如下所示:

(注意H5为Value,I5为LoLo,J5为Lo,K5为Hi,L5为HiHi)

Red: =OR($H<$I,$H>$L)
Yellow: =OR(AND($H>$K,$H<$L),AND($H<$J,$H>$I))
Green: =AND($H>$J,$H<$K)

H 列中以绿色显示的值是动态的(每分钟自动更改),而其他值是固定的。

我将向您展示我现在为 Red 编写的 VBA 规则(它不起作用)

Range(CurrentValue_Loc).Select 'CurrentValue_Loc = H5 in this case
If (ActiveCell.Value < Range(LoLo_Loc).Value Or ActiveCell.Value > Range(HiHi_Loc).Value) Then
ActiveCell.Interior.ColorIndex = 3

这 "works" 一次 但这不是实际规则。当宏在 t=0 运行时,它基本上格式化单元格,但在 5 分钟内,即使该值不再满足我的规则,格式也不会改变。

我完全理解为什么它不起作用,但我不知道如何让它起作用。希望我说得足够清楚。

感谢您的帮助!

这可能有效,也可能无效,具体取决于您所说的值更新 "automatically" 时的确切含义,但通常情况下,每当值发生变化时获取宏到 运行 的方法就是把它包裹在Worksheet change事件中。

为此,在 VBA 编辑器的左侧,双击包含此宏需要定位的单元格的 sheet 的名称。您编辑的顶部有两个框window。从左侧的下拉列表中,select "Worksheet",从右侧的下拉列表中,select "Change"。那时,编辑器应该自动填充 Worksheet_Change 子的 shell。将您的代码放在那里将导致它 运行 任何时候工作的价值 sheet 发生变化。

要通过条件格式来做到这一点: 将以下作为三个单独的规则应用于单元格 H5:

Red: =OR($H5<$I5,$H5>$L5)

Yellow: =OR(AND($H5>$K5,$H5<$L5),AND($H5<$J5,$H5>$I5))

Green: =AND($H5>$J5,$H5<$K5)

请注意行引用前面缺少 $。 现在您可以使用格式刷将这些规则(及其现在的相关引用)拖到 H 列下方。