我试图在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
任何建议或协助都将不胜感激。
答案 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
函数。在代码的最后,我们只更改Union
中EntireRow
的颜色,这会导致一次性非整数行的着色。
修改后的代码
ColorRng
答案 1 :(得分:2)
空单元格也被视为具有该函数的数字。例如,您可以使用If Isnumeric(.Value) and .Value <> "" Then
。