VBA检查variables是否为空

我有一个对象,在其中我想检查一些属性是否设置为false,如:

If (not objresult.EOF) Then 'Some code End if 

但不知何故,有时objresult.EOFEmpty ,我怎么检查它?

  • IsEmpty函数仅适用于Excel单元格
  • objresult.EOF Is Nothing – 返回Empty
  • objresult.EOF <> null – 返回Empty

您如何testing取决于属性的数据types:

 | types| testing|  TEST2
 | 数字(长,整数,双精度等)| 如果obj.Property = 0那么| 
 |  Boolen(True / False)| 如果不是obj.Property然后| 如果obj.Property = False那么
 | 对象| 如果obj.Property是Nothing Then |
 | string| 如果obj.Property =“”Then | 如果LenB(obj.Property)= 0那么
 | 变体| 如果obj.Property = Empty然后|

您可以通过按F2启动对象浏览器并查找对象来告诉DataType。 另一种方法是只使用TypeName函数: MsgBox TypeName(obj.Property)

要检查Variant是否为空,您需要这样做:

 Isnull(myvar) = True 

要么

 Not Isnull(myvar) 

对于一个数字,这是棘手的,因为如果一个数字单元格是empty VBA将分配一个默认值为0,所以很难让您的VBA代码来区分input的零和空白的数字单元格之间的区别。

下面的检查工作对我来说是否有一个实际的0进入单元格:

 If CStr(rng.value) = "0" then 'your code here' End If