我从“JosieP”
获得了以下字样:Format cell based on formula value我正在尝试测试Null单元格,因为如果遇到一个sub,则会失败。如果遇到空单元格,我想为单元格添加颜色
If IsNull(rCell) Then rCell.Interior.Color = 8
不起作用,但也不会失败。
if clng(Left(Right(rcell.value, 2), 1)) < 3 Then rcell.Interior.ColorIndex = 10
失败。
我尝试添加Not IsNull(rCell),所以我会这样做
if clng(Left(Right(rcell.value, 2), 1)) < 3 And Not IsNull(rCell) Then rcell.Interior.ColorIndex = 10
但这也失败了。
Sub Format()
Dim LastRow As Long
Dim WS As Worksheet
dim rCell as range
Set WS = Sheets("sheet1")
LastRow = WS.range("F" & WS.Rows.Count).End(xlUp).Row
for each rcell in WS.range("F2:F" & LastRow).cells
If IsNull(rCell) Then rCell.Interior.Color = 8
if clng(Left(Right(rcell.value, 2), 1)) < 3 And Not IsNull(rCell) Then rcell.Interior.ColorIndex = 10
next rcell
End Sub
答案 0 :(得分:2)
Excel中的单元格值永远不会包含Null
值。如果单元格为空白,则为Empty
。
If IsEmpty(rCell.Value) Then ...
此外,空白的单元格与包含空字符串的单元格(零长度字符串)不同。要测试这些,请使用
If Len(rCell.Value) > 0 Then ...
请注意,与IsEmpty
不同,这不受类型不匹配错误的影响。如果您的单元格恰好包含错误值(例如#N/A
),则会出现运行时错误13:尝试检查其长度时键入不匹配。为了更加安全,您可能需要先检查IsError(rCell.Value)
。