VBA检查是否设置了对象
我有一个全局variables是我的自定义类的一个实例。
如何检查对象是否已设置,或者是否需要初始化?
If obj Is Nothing Then ' need to initialize obj: ' Set obj = ... Else ' obj already set / initialized. ' End If
或者,如果你喜欢,反过来:
If Not obj Is Nothing Then ' obj already set / initialized. ' Else ' need to initialize obj: ' Set obj = ... End If
(不)安全的方式来做到这一点 – 如果你确定不使用选项显式 – 是…
Not TypeName(myObj) = "Empty"
如果对象没有被声明,这也处理这种情况。 如果您只想注释一个声明来closures某些行为,这是非常有用的。
Dim myObj as Object Not TypeName(myObj) = "Empty" '/ true, the object exists - TypeName is Object 'Dim myObj as Object Not TypeName(myObj) = "Empty" '/ false, the object has not been declared
这是有效的,因为VBA会自动实例化一个未声明的variables作为空variablestypes。 它消除了辅助布尔值来pipe理行为的需要。