如何在使用Excel VBA条件格式时突出显示单元格?

时间:2016-01-25 15:42:41

标签: excel vba excel-vba

好的,所以我感到困惑,并希望得到任何帮助或建议。

我正在尝试突出满足两个条件的细胞。也就是说,在这种特定情况下,如果单元格中的绝对值大于3并且该相同的绝对值大于相邻单元格中的另一个值,则该单元格被突出显示。例如,我的数据如下所示:

-1.2,1.71,6.26,10.2,3.3,0.4 4 -4

因此,如果左侧六个值中的任何一个的绝对值大于3且大于四个(右侧的相邻四个),则它们会突出显示。相邻值将改变,但不总是四。我需要在VBA中执行此操作,并且我希望代码以这样的方式工作:当我移动到与上面类似的另一行数据时,将测试两个条件并突出显示正确的值。所以这就是我迄今为止在VBA中所写的内容。

Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=AND(ABS(RC) >3,ABS(RC) >RC[9])"
  Selection.FormatConditions(1).Interior.ColorIndex = 45

问题:

我正在使用R1C1格式,因为我希望它在将此代码应用于另一行数据时自动更新。但是目前这段代码只突出显示数字10.2而不是6.26。我认为如果我将代码保留为ABS(RC),这将引用当前的单元格值?请指教。数字4(相邻单元格)也是第一个值-1.2的九列 - 因此我写了RC [9]。

1 个答案:

答案 0 :(得分:0)

根据我的理解,你试图改变每个细胞的1个条件的参考,但保留第2个条件的参考(检查每个细胞的值,并检查其对固定的最后一个细胞的值)。

我用过

Sub highlight()

Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=AND(ABS(RC) >3,ABS(RC) > abs(indirect(address(" & Selection.Row & "," & _
        (Selection.Column + Selection.Columns.Count - 1) & "))))"
Selection.FormatConditions(1).Interior.ColorIndex = 45

End Sub

第一个我选择范围A1:H1(我保留你的数字的那个)然后我运行这个宏,最后突出显示6.26和10.2。