如果单元格值为数字,则VBA突出显示行

时间:2018-03-11 22:40:19

标签: excel vba excel-vba

我试图在Excel中突出显示行中的行(如果它们在此列中有数值)(其他行为空白),但是此代码突出显示了所有行:

For lRow = LastRow To FirstRow Step -1
    With .Cells(lRow, "AF")
        If IsNumeric(.Value) Then
            .EntireRow.Interior.Color = 5296274
        End If
    End With
Next lRow

任何建议或协助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

检查单元格中数字值的最安全方法还是检查单元格是否为空,或仅包含空格,您可以使用Trim(.Value2) <> ""

<强> 代码

If IsNumeric(.Value) And Trim(.Value2) <> "" Then
    .EntireRow.Interior.Color = 5296274
End If

编辑1 :更快的运行时代码。

使用VBA,消耗时间最长的任务是访问工作表的任务,在这种情况下是.EntireRow.Interior.Color = 5296274

我们可以做的是使用Range对象,在我的代码中ColorRng,并且每次满足If条件时,我们都会将该单元格添加到此{{1}使用Range函数。在代码的最后,我们只更改UnionEntireRow的颜色,这会导致一次性非整数行的着色。

修改后的代码

ColorRng

答案 1 :(得分:2)

空单元格也被视为具有该函数的数字。例如,您可以使用If Isnumeric(.Value) and .Value <> "" Then