如何根据另一个单元格值VBA突出显示一个单元格?

时间:2017-12-11 20:33:20

标签: excel vba excel-vba

此问题之前已被问过,但我还是采取了另一种方式。我试图突出显示一个单元格,如果它大于另一个单元格的值。

这是我的代码:

Sub Error_Search()

Dim Summary As Worksheet
Dim lr As Long
Set Summary = Worksheets("Summary")


            lr = Cells(Rows.Count, 20).End(xlUp).Row

    With Summary

            For i = lr To 3 Step -1

            If Range("L" & i).Value > Range("$Q$2:$R$3").Value Then Range("L" & i).Font.Color = -16776961

            Next i

    End With

End Sub

范围(“$ Q $ 2:$ R $ 3”)是一个合并的单元格,它是我想要比较要突出显示的单元格的单元格。

我一直遇到不匹配错误。

非常感谢任何帮助。

谢谢,

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,问题是多个单元格Range没有单个Value,即使单元格已合并:Range.Value会产生每当涉及多个单元时,2D变体阵列。因此,您可以通过仅引用合并范围的左上角单元格来修复错误。

那说......

您不需要任何VBA代码来执行此操作;条件格式处理得非常整齐。

Conditional format formula: =$C4>$M$3

 =$C4>$M$3

请注意$ dollar标志:$M$3将是您合并的单元格(仅最左边的单元格很重要),而$C4只是您将条件格式定义为的第一个单元格;将行保留为非绝对行(即行号上没有$)允许您通过指定适用于范围将格式应用于整个单元格范围:

cells in $D:$L where $C is greater than $M$3 are highlighted

请注意,无论我们是在查看$ M $ 3还是$ M $ 3:$ N $ 3合并的单元格,格式公式都是相同的。

条件格式的性能要比您可以编写的任何VBA代码好得多。