3

我有一个返回字典的 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函数时遇到了麻烦,因为如果我尝试将 Dictionary 设置Nothing为指示空值的一种方式,似乎无法检查该值。例如:

Sub testNothing()

Dim d As New Dictionary

Set d = Nothing
Debug.Print d Is Nothing

End Sub

这会打印false,即使我设置dNothing. 这似乎也适用于所有其他对象类型。

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

4

2 回答 2

4
Dim d As New Dictionary

在 VBA/VB6 中,上面的意思是“声明变量总是包含d一个Dictionary.NothingDictionary

您要删除New

Dim d As Dictionary

然后你可以检查变量是否Is Nothing

于 2013-03-15T17:23:07.353 回答
1

您需要正确实例化。这有效:

Dim d As Dictionary
Set d = New Dictionary
Set d = Nothing
Debug.Print d Is Nothing
于 2013-03-15T17:27:26.947 回答