VBA检查variables是否为空
我有一个对象,在其中我想检查一些属性是否设置为false,如:
If (not objresult.EOF) Then 'Some code End if
但不知何故,有时objresult.EOF
是Empty
,我怎么检查它?
-
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