ВБА - Напуни низ са јединственим вредностима из колоне

Овај водич ће вас научити како попунити низ јединственим вредностима из колоне у ВБА.

Попуни низ са јединственим вредностима из колоне

Узимање листе вредности са Екцел листа у низ представља питање петља кроз редове у Екцелу и попуњавање низа.

Размотрите следећу листу купаца у Екцел листу.

Користећи петљу, могли бисмо попунити низ у ВБА. Међутим, стандардна петља ће се провлачити кроз сваки ред, укључујући дупле редове, а ви ћете завршити са дупликатом вредности у свом низу.

Решење за петљу кроз ћелије и попуњавање објекта колекције вредностима као објекат збирке неће дозволити дупликате. Затим можете користити тај објекат колекције за попуњавање свог низа.

1234567891011121314151617181920212223242526 Суб ПопулатеУникуеАрраи ()Дим СтрЦустомерс () Ас СтрингДим Цол као нова колекцијаДим валЦелл Ас СтрингДим и Ас ИнтегерДим н Ас Интегер'броји редове у опсегун = Опсег ("А1", Опсег ("А1"). Крај (клДовн)). Ровс.Цоунт'Напуни привремену збиркуНа Грешка Настави даљеЗа и = 0 То нвалЦелл = Опсег ("А1"). Помак (и, 0) .ВредностЦол.Адд валЦелл, валЦеллЗатим самЕрр.ЦлеарОн Еррор ГоТо 0'Промени величину нн = Цол.Цоунт'Редецларе арраиРеДим СтрЦустомерс (1 до н)'Напуните низ проласком кроз збиркуЗа и = 1 до броја рачунаСтрЦустомерс (и) = Цол (и)Затим самДебуг.Принт Јоин (СтрЦустомерс (), вбЦрЛф)Енд Суб

Напуни низ са јединственим вредностима - функција

Горњи пример је показао процедуру која би извршила ваше жељене радње. Али уместо тога, можда бисте више волели преносну функцију за извршавање задатка:

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

Да бисте користили функцију, мораћете да је позовете из потпроцедуре:

123456789 Суб ПопулатеАрраи ()Дим СтрЦустомерс () Ас СтрингДим стрЦол као колекцијаДим н Ас Лонг'броји редове у опсегун = Распон ("А1", Опсег ("А1"). Крај (клДовн)). Ровс.Цоунт'покрените функцију да бисте креирали низ јединствених вредностистрЦустомерс () = ЦреатеУникуеЛист (1, н)Енд Суб
wave wave wave wave wave