0

我从以下子中获得了以下内容:根据“JosieP”中的公式值格式化单元格

我正在尝试测试空单元,因为如果遇到空单元,子单元就会失败。如果遇到空单元格,我想为单元格添加颜色

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
4

1 回答 1

2

Excel 中的单元格值从不包含该Null值。如果单元格为空白,则为Empty

If IsEmpty(rCell.Value) Then ...

此外,空白单元格与包含空字符串(零长度字符串)的单元格不同。要测试这些,您可以使用

If Len(rCell.Value) > 0 Then ...

请注意,与 不同IsEmpty的是,这不受类型不匹配错误的保护。如果您的单元格恰好包含错误值(例如#N/A),您将收到运行时错误 13:尝试检查其长度时类型不匹配。为了更加安全,您可能需要先检查一下IsError(rCell.Value)

于 2013-06-05T15:57:19.157 回答