vba: вернуть словарь из функции - PullRequest
11 голосов
/ 28 октября 2010

это описывает то, что я пытаюсь сделать.

это не работает для меня, и неясно, почему.

Заранее благодарю за любую помощь.

        Sub mySub()
        dim myDict as Dictionary
            myDict=new Dictionary

                myDict=myFunc()

        End Sub

        Function myFunc()
            dim myDict2
                set myDict2 = new Dictionary

                    'some code that does things and adds to myDict2'

            myFunc=myDict2
        End Function

1 Ответ

31 голосов
/ 28 октября 2010

Вам нужно будет использовать ключевое слово SET каждый раз, когда вы присваиваете объект вместо значения :

    Sub mySub()
        dim myDict as Dictionary
        set myDict = myFunc()
    End Sub

    Function myFunc() as Dictionary
        dim myDict2 as Dictionary
        set myDict2 = new Dictionary
                'some code that does things and adds to myDict2'
        set myFunc=myDict2
    End Function

Также создавался ваш оригинальный кодmyDict как новый объект Dictionary, а затем немедленно заменить его другим.Вы можете просто пропустить этот шаг.

...