真正的条件格式化规则,改变数值和多个单元格

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

我想对一个特定的单元格应用3套规则,如下所示:

(注意H5是数值,I5是LoLo,J5是Lo,K5是Hi,L5是HiHi)

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

你看到这第五列

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

我将向您展示我现在为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 

这个“工作” 一次,但它不是一个实际的规则。 当macros运行在t = 0时,它基本上格式化单元格,但在5分钟内,即使该值不再符合我的规则,格式也不会改变。

我完全理解为什么它不起作用,但我不知道如何使它工作。 希望我很清楚。

感谢您的帮助!

要通过条件格式来执行此操作:将以下三个单独的规则应用于单元格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)

请注意在行参考前缺less$ 。 现在,您可以使用格式画家将这些规则(及其现在的相对引用)拖到H列。

这可能会也可能不会工作,具体取决于您说的值是“自动”更新的意思,但通常情况下,只要值发生更改就运行macros的方法是将其包含在Worksheet更改事件中。

为此,在VBA编辑器的左侧,双击包含该macros需要定位的单元格的表单名称。 编辑窗口顶部有两个框。 从左侧的下拉列表中select“工作表”,从右侧的下拉菜单中select“更改”。 此时,编辑器应该自动填充Worksheet_Change子项的shell。 将代码放在那里将随时在工作表上的值发生变化时运行。