[英]Return Dictionary from Function or Sub in VBA
我想在一個子/函數中創建和初始化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
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.