Вопрос
Нужно передать в функцию много однотипных параметров. Например, вызываем ее:
N = MyFunc("Строка1", "Строка2", "Строка3", "и т.д.", … )
Естественно, нужно узнать, сколько их и их значения.
Ответ
Примерно так:
'Функция находит НОД _любого_ количества чисел.
'Использование:
'ret=Devider(10,20,30,40,50,60,70,80,90,100)
Public Function Devider(ParamArray V())
Dim i As Integer
Dim lngTemp As Long
'Скопируем во временную переменную первый элемент
lngTemp = V(0)
'Пройдемся по всем элементам
For i = 1 To UBound(V)
'Найдем НОД предыдущего НОД и следующего числа.
lngTemp = Devider2(lngTemp, V(i))
Next i
Devider = lngTemp
End Function
Как видишь, ParamArray позволяет запихнуть все аргументы в один массив, причем этих аргументов может быть хоть 1000.
Есть некоторые огранчиения при его использовании.
В объявлении функции может быть только один ParamArray и идти он должен в списке аргументов функции последним. Он всегда является опциональным, но с ним не могут использоваться ключевые слова Optional, ByVal и ByRef.
Артем Кривокрисенко
Copyright 2000-2004 Сообщество Чайников
Контактная информация