Преглед садржаја
Овај чланак ће показати како вратити низ помоћу ВБА функције.
ВРА функција враћа низ
Када користите функције за враћање низова, топло препоручујем да декларишете низове са варијантом типа:
123 | Функција РетурнАрраи () као варијантаЗавршна функција |
Вариант Арраис са њима је лакше радити. Величина низа постаје мање забрињавајућа.
Примери низа функција за враћање функције
Ево примера функције која враћа низ:
1234567891011121314151617181920212223242526272829 | Функција РетурнАрраи () као варијантаДим темпАрр као варијанта'Направи нови низ темпРеДим темпАрр (1 до 3, 1 до 2)'Доделите вредности низатемпАрр (1, 1) = "Стеве"темпАрр (1, 2) = "Јохнсон"темпАрр (2, 1) = "Риан"темпАрр (2, 2) = "Јохнсон"темпАрр (3, 1) = "Андрев"темпАрр (3, 2) = "Сцотт"'Излазни низРетурнАрраи = темпАррЗавршна функцијаСуб ТестТранспосеАрраи ()Дим оутпутАрр као варијанта'Функција повратног позиваоутпутАрр = РетурнАрраи ()'Тест ОутпутМсгБок оутпутАрр (2, 1)Енд Суб |
Приметите да смо декларисали низове са типом података = варијантом како бисмо избегли проблеме са величином.
Овај пример узима низ као улаз, транспонује низ и даје нови транспоновани низ:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | Функција ТранспосеАрраи (МиАрраи као варијанта) као варијантаДим к Ас Лонг, и Ас ЛонгДим макКс Ас Лонг, минКс Ас ЛонгДим макИ Ас Лонг, минИ Ас ЛонгДим темпАрр као варијанта'Пређите горње и доње границемакКс = УБоунд (МиАрраи, 1)минКс = ЛБоунд (МиАрраи, 1)макИ = УБоунд (МиАрраи, 2)минИ = ЛБоунд (МиАрраи, 2)'Направи нови низ темпРеДим темпАрр (минКс до макКс, минИ до макКс)'Транспонирајте низЗа к = минКс То макКсЗа и = минИ до макИтемпАрр (и, к) = МиАрраи (к, и)Следеће иДаље к'Излазни низТранспосеАрраи = темпАррЗавршна функцијаСуб ТестТранспосеАрраи ()Затамните тестАрр (1 до 3, 1 до 2) као варијантуДим оутпутАрр као варијанта'Доделите вредности низатестАрр (1, 1) = "Стеве"тестАрр (1, 2) = "Јохнсон"тестАрр (2, 1) = "Риан"тестАрр (2, 2) = "Јохнсон"тестАрр (3, 1) = "Андрев"тестАрр (3, 2) = "Сцотт"'Функција преноса позиваоутпутАрр = ТранспосеАрраи (тестАрр)'Тест ОутпутМсгБок оутпутАрр (2, 1)Енд Суб |