IsEmpty 是一个检查Variant 变量是否包含任何值的函数。 Variant 可以保存任何类型的数据(数字、字符串、对象引用、布尔值、任何类型的数组……)。如果您将某些内容分配给变体变量,则变体知道此时它拥有哪种数据类型。但是,如果您只是声明一个变体变量,它会使用值Empty 进行初始化,您可以使用IsEmpty 进行检查(或者您可以使用函数Vartype,如果它返回0,则表示为空) .
所有其他变量类型永远不会为空,因为它们在 VBA 中具有初始值(0 表示数字,“”表示字符串,Nothing 表示对象)。所有这些初始值都不是empty。想想看,只要 VBA 知道数据类型,isEmpty 就会返回 False。 Variant 数组不为空(其数据类型为“Array of..”)。
IsEmpty 的主要原因是检查 Excel 中单元格的内容。如果单元格没有值,则返回 true。但是,一次检查多个单元格总是会返回 false,即使所有单元格都是空的。
Dim s As String, l As Long, v As Variant, a() As Variant, r As Range
Debug.Print "String: ", IsEmpty(s)
Debug.Print "Number: ", IsEmpty(l)
Debug.Print "Variant: ", IsEmpty(v)
Debug.Print "Array: ", IsEmpty(a)
Debug.Print "Object: ", IsEmpty(r)
Set r = ActiveSheet.Range("A1")
Debug.Print "Cell: ", IsEmpty(r)
Set r = ActiveSheet.Range("A1:A3")
Debug.Print "Cells: ", IsEmpty(r)
显示(假设工作表为空)
String: False
Number: False
Variant: True
Array: False
Object: False
Cell: True
Cells: False