2013-03-15 15 views
2

我有一个返回字典的VBA函数,然后如果在构建字典时出现错误,需要采取一定的行动。像这样:如何将对象设置为可以布尔检查的空值?

Public Sub takeAction(s as string) 

Dim dict as Dictionary 
Set dict=makeADictionary(s) 
If dictionaryIsOK(dict) Then 
doSomething 
Else 
doSomethingElse 
End If 

End Sub 

我无法使dictionaryIsOK功能,因为如果我尝试字典设置Nothing作为指示空值的方式,似乎这个值不能进行检查。例如:

Sub testNothing() 

Dim d As New Dictionary 

Set d = Nothing 
Debug.Print d Is Nothing 

End Sub 

这将打印false,即使我设置dNothing。对于所有其他对象类型,这似乎也是如此。

那么,什么空值可以分配给一个对象,在这种情况下,一个字典,什么将布尔检查它?上述

回答

4
Dim d As New Dictionary 

在VBA/VB6,意思是“声明变量d奇迹般地总是包含的Dictionary一个实例。如果我的变量设置为Nothing,实例化一个新的Dictionary对我下一次我访问变量。 “

要删除New

Dim d As Dictionary 

然后你就可以检查变量Is Nothing与否。

+1

有趣。我不知道“Dim x as new y'。 – sigil 2013-03-15 17:30:01

1

您需要正确实例化。此作品:

Dim d As Dictionary 
Set d = New Dictionary 
Set d = Nothing 
Debug.Print d Is Nothing 
相关问题