检查单元格中的null

时间:2011-08-02 11:58:24

标签: vba excel-vba excel

代码:

    Sub Usuns()
Dim wiersz, licznik As Integer
wiersz = 0
licznik = 0
Do
licznik = licznik + 1
 If Range("B" & licznik).Value Is Null Then
  Range("B" & licznik).Select
  Selection.Delete
  wiersz = wiersz + 1
 Else
  wiersz = 0
 End If
 If wiersz = 50 Then
       Exit Do
 End If
Loop
End Sub

这一行If Range("B" & licznik).Value Is Null Then 抛出此错误:

  

运行时错误'424':需要对象

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您不能以这种方式使用值Null

你应该尝试:

If Range("B" & licznik).Value = ""

有关Null的小型讨论,请参阅here

答案 1 :(得分:1)

#NULL!

我认为您要检测单元格是否包含Excel错误代码#NULL!。为此,您需要使用CVErr function

If Range("B" & licznik).Value = CVErr(xlErrNull)

清空单元格

但是,如果要测试空(空白)单元格,则需要使用IsEmpty function

If IsEmpty(Range("B" & licznik).Value) Then

请注意,这是严格测试空白单元格的唯一方法。其他技巧不会以同样的方式表现;例如,如果单元格包含空字符串(Range("B" & licznik).Value = ""),True将返回="",而IsEmpty将返回False。取决于你想做什么。谨慎选择。

答案 2 :(得分:-1)

我怀疑Range需要在其父工作表对象的范围内。

所以:

ThisWorkbook.Sheets("MySheet").Range("B" & licznik).Value

With ThisWorkbook.Sheets("MySheet")
    'some code...

    .Range("B" & licznik).Value

    'some more code...
End With