我有一个对象,并在我想检查,如果一些属性设置为false,如:VBA检查变量为空
If (not objresult.EOF) Then
'Some code
End if
但不知何故,有时objresult.EOF
是Empty
,我怎么能检查?
IsEmpty
函数是Excel单元格仅objresult.EOF Is Nothing
- 返回Empty
objresult.EOF <> null
- 返回Empty
以及!
我有一个对象,并在我想检查,如果一些属性设置为false,如:VBA检查变量为空
If (not objresult.EOF) Then
'Some code
End if
但不知何故,有时objresult.EOF
是Empty
,我怎么能检查?
IsEmpty
函数是Excel单元格仅objresult.EOF Is Nothing
- 返回Empty
objresult.EOF <> null
- 返回Empty
以及!你如何测试取决于属性的数据类型:
| Type | Test | Test2 | Numeric (Long, Integer, Double etc.) | If obj.Property = 0 Then | | Boolen (True/False) | If Not obj.Property Then | If obj.Property = False Then | Object | If obj.Property Is Nothing Then | | String | If obj.Property = "" Then | If LenB(obj.Property) = 0 Then | Variant | If obj.Property = Empty Then |
您可以按F2键启动对象浏览器和查找对象告诉的数据类型。另一种方法是只使用TypeName函数:MsgBox TypeName(obj.Property)
要检查Variant
是空,你需要做的是这样的:
Isnull(myvar) = True
或
Not Isnull(myvar)
一个数字,这很棘手,因为如果数字单元格是empty
VBA将为其分配一个默认值0,所以很难让您的VBA代码告诉输入的零和空白数字单元格之间的区别。
下列检查工作对我来说,看是否有一个实际的0输入到单元格:
If CStr(rng.value) = "0" then
'your code here'
End If
您的代码示例是区分0和空的一种很好的解决方法 – Laurent 2015-05-27 14:00:55
请提供一些实际的代码 - 告诉我们什么类型的对象是'objresult'。而'IsEmpty'并不是专门针对excel单元格的,而是'Variant'变量。 – 2010-07-25 12:21:58