真正的条件格式化规则,改变数值和多个单元格
经过数小时的研究和失败的尝试,我终于决定自己提出这个问题。
我想对一个特定的单元格应用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。 将代码放在那里将随时在工作表上的值发生变化时运行。