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