Vba 检查单元格中的空值

Vba 检查单元格中的空值,vba,excel,Vba,Excel,代码: 此行如果范围(“B”和licznik)。值为空,则 抛出此错误: 运行时错误“424”:需要对象 如何修复此问题?我怀疑范围需要在其父工作表对象的范围内 因此,要么: 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" & l

代码:

此行
如果范围(“B”和licznik)。值为空,则

抛出此错误:

运行时错误“424”:需要对象


如何修复此问题?

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

因此,要么:

    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


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

因此,要么:

    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


不能以这种方式使用值
Null

你应该试试:

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

    .Range("B" & licznik).Value

    'some more code...
End With

有关
Null
的小讨论,请参阅。您不能以这种方式使用值
Null

你应该试试:

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

    .Range("B" & licznik).Value

    'some more code...
End With
有关
Null

#Null!的小讨论,请参阅! 我想您是想检测单元格是否包含Excel错误代码
#NULL。为此,您需要使用:

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

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

#无效! 我想您是想检测单元格是否包含Excel错误代码
#NULL。为此,您需要使用:

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


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

如果不明确指定,Excel会假定您要指定当前工作表(这可能很棘手,但不会引发错误);如果不明确指定,Excel会假定您要指定当前工作表(这可能很棘手,但不会引发错误)。请注意
范围(“B”&licznik).Value=“”如果单元格包含空字符串(即
=”
),则
将返回
True
。OP想要这个吗?我不知道。@Jean-François:谢谢你的提示。顺便说一句,你的回答比我的+1要彻底得多!请注意,如果单元格包含空字符串(即
=”
),则
Range(“B”&licznik).Value=”“
将返回
True
。OP想要这个吗?我不知道。@Jean-François:谢谢你的提示。顺便说一句,你的回答比我的+1要彻底得多!
If Range("B" & licznik).Value = CVErr(xlErrNull)
If IsEmpty(Range("B" & licznik).Value) Then