我想在一个子/函数中创建和初始化一个Dictionary对象,并在另一个子/函数中使用它。我可以在同一个子中做所有事情,但希望模块化代码。这将返回“参数不可选”,这是我尝试过的最新版本代码中的最新错误。我究竟做错了什么?
Function CreateDictionary() As Dictionary
Set aDictionary = New Dictionary
With aDictionary
.Add Key:="key1", Item:="value1"
.Add Key:="key2", Item:="value2"
End With
CreateDictionary = aDictionary
End Function
Sub useDictionary()
myDictionary = CreateDictionary
For Each k In myDictionary.Keys
MsgBox myDictionary.k
Next
End Sub
答案 0 :(得分:3)
1)CreateDictionary = aDictionary
应为Set CreateDictionary = aDictionary
2)myDictionary = CreateDictionary
应为Set myDictionary = CreateDictionary
3)MsgBox myDictionary.k
应为MsgBox myDictionary(k)
正确的代码:
Function CreateDictionary() As Dictionary
Dim aDictionary As Dictionary
Set aDictionary = New Dictionary
With aDictionary
.Add Key:="key1", Item:="value1"
.Add Key:="key2", Item:="value2"
End With
Set CreateDictionary = aDictionary
End Function
Sub useDictionary()
Dim myDictionary As Dictionary
Set myDictionary = CreateDictionary
For Each k In myDictionary.Keys
MsgBox myDictionary(k)
Next
End Sub