Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Передача коллекции в качестве параметра / 3 сообщений из 3, страница 1 из 1
21.12.2009, 23:26
    #36378679
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача коллекции в качестве параметра
Привет всем.
Возникла необходимость передать в функцию коллекцию.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Function buildSchedTree(ByRef schedWB As Workbook) As Collection 'Эта функция строит дерево
...
Private Function calcDifference(ByRef schedCol As Collection) As Collection 'Эта считает симметрическую разность двух деревьев
...
Dim schedTree, replTree As Collection
    Set schedTree = buildSchedTree(Workbooks.Open(schedFileName,  0 , True))
    replWB.Activate
    Set replTree = calcDifference(schedTree)
Офис 2007 наотрез отказывается исполнять этот код. На этапе интерпретации выдается ошибка "ByRef argument type mismatch". Когда в объявлении calcDifference пишу явно byVal, макро нормально выполняется. Но мне нужна передача именно по ссылке, а не по значению. Кто подскажет, что я тут неправильно нагородил?
--------------
Festina lente
...
Рейтинг: 0 / 0
21.12.2009, 23:50
    #36378696
Передача коллекции в качестве параметра
Mozok,

Прочитайте справку по Dim Statement. Переменная schedTree описана как Variant. Надо описать как Collection.
...
Рейтинг: 0 / 0
22.12.2009, 00:35
    #36378730
Mozok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача коллекции в качестве параметра
13-й квартал,

блин, точно ведь. Каждой переменной необходимо явно указывать тип, иначе она считается Variant. Спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Передача коллекции в качестве параметра / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]