如何突出一个单元格基于另一个单元格值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”)是一个合并的单元格,它是我想要比较要强调的单元格的单元格。

我不断收到一个不匹配的错误。

任何帮助将不胜感激。

谢谢,

G

正如在注释中提到的那样,问题在于多单元格Range没有单个Value ,即使单元格被合并: Range.Value只要涉及多个单元格,就会生成2D变体数组。 所以你可以通过只引用合并范围的左上angular的单元来修复这个bug。

那说…

你不需要任何VBA代码来做到这一点; 条件格式处理它很整齐。

条件格式公式:= $ C4> $ M $ 3

  =$C4>$M$3 

注意$美元符号: $M$3将是你的合并单元格(只有最左边的单元格很重要),而$C4只是你定义条件格式的第一个单元格; 使行不是绝对的(即在行号上没有$)允许通过指定适用范围来将格式应用于整个单元格范围:

单元格$ D:$ L,其中$ C大于$ M $ 3被突出显示

请注意,格式公式是相同的,无论我们正在寻找$ M $ 3或$ M $ 3:$ N $ 3合并的单元格。

有条件的格式比你可以写的任何VBA代码都要好得多。