0

以下からサブを取得しました:「JosieP」の数式値に基づいてセルをフォーマットします

Null セルに遭遇するとサブが失敗するため、Null セルをテストしようとしています。null セルに遭遇した場合、セルに色を追加したい

If IsNull(rCell) Then rCell.Interior.Color = 8動作しませんが、失敗もしません。

if clng(Left(Right(rcell.value, 2), 1)) < 3 Then rcell.Interior.ColorIndex = 10null セルがあると失敗します。

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: Type mismatch が発生します。IsError(rCell.Value)安全性を高めるために、最初に確認することをお勧めします。

于 2013-06-05T15:57:19.157 に答える