簡體   English   中英

從VBA中的Function或Sub返回字典

[英]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 = aDictionarySet CreateDictionary = aDictionary
2) myDictionary = CreateDictionarySet 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM