Попуните оквир са јединственим вредностима са радног листа користећи ВБА у програму Мицрософт Екцел

Anonim

У овом чланку ћемо креирати оквир са листом у корисничком облику и учитати га вредностима након уклањања дуплираних вредности.

Сирови подаци које ћемо уметнути у оквир са листом састоје се од имена. Ови необрађени подаци садрже двострукост у дефинисаним именима.

У овом примеру смо креирали кориснички облик који се састоји од Лист Бок -а. Овај оквир са листом ће приказати јединствена имена из узорака података. Да бисте активирали кориснички образац, кликните на дугме за слање.

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

Логичко објашњење

Пре додавања имена у оквир са листом, користили смо објекат колекције за уклањање дуплираних имена.

Извели смо следеће кораке за уклањање дуплираних уноса:-

  1. Објекту збирке додата имена из дефинисаног опсега у Екцел листу. У објекту збирке не можемо да уметнемо дуплиране вредности. Дакле, Објекат Цоллецтион баца грешку при налажењу дуплираних вредности. За решавање грешака користили смо изјаву о грешци „Он Еррор Ресуме Нект“.

  2. Након припреме збирке, додајте све ставке из збирке у низ.

  3. Затим уметните све елементе низа у оквир за листу.

Молимо следите доле за код

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

Ако вам се допао овај блог, поделите га са пријатељима на Фацебооку. Такође, можете нас пратити на Твиттер -у и Фацебоок -у.

Волели бисмо да чујемо од вас, јавите нам како можемо побољшати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште