Преглед садржаја
У зависности од околности, можда ћете морати да изаберете више вредности у падајућој листи. У овом водичу ћемо вам показати како да направите вишеструки избор на падајућој листи. За ову сесију користимо Екцел 2019, слободно користите своју жељену верзију.
Пре него што уђемо у сесију, хајде да се упознамо са скупом података који је основа наших примера.
Овде имамо неколико елемената канцеларијског материјала, помоћу њих ћемо направити падајућу листу и тамо изабрати више ставки.
Имајте на уму да је то једноставан скуп података да би ствари биле јасне . У практичном сценарију, можда ћете наићи на много већи и сложени скуп података.
Радна свеска
Можете да преузмете радну свеску за вежбу са доње везе.
Извршите вишеструки избор са падајуће листе.клсм
Вишеструки избор у падајућој листи
Пре свега, треба да креирамо падајућу листу на основу наше дописнице. Хајде да га створимо брзо. Не устручавајте се да посетите чланак о прављењу падајуће листе.
У дијалогу Провера ваљаности података изаберите тип података ЛИСТ и убаците опсег ћелија ставки.
Б4:Б11 је опсег који садржи елементе за писање. Сада ћете пронаћи падајућу листу.
Прочитајте више: Екцел падајућа листа у зависности од избора
1. ИзаберитеВише ставки (омогућава двоструки избор)
Конвенционална падајућа листа увек бира једну ставку. Овде можете видети да смо са листе (слика испод) изабрали Оловка .
Сада, ако изаберемо другу ставку, рецимо Оловка
онда ће заменити претходну вредност. Само Оловка ће остати изабрано.
Да бисмо изабрали више ставки, морамо да користимо ВБА код. Отворите прозор Мицрософт Висуал Басиц за апликације (притисните АЛТ + Ф11 да бисте га отворили).
Сада двапут кликните на назив радног листа или број на којем желите да изаберете више ставки у падајућој листи. Наћи ћете прозор кода за тај одређени лист.
Овде је прозор кода за Схеет2 у нашој радној свесци (имамо падајући мени листу на овом листу).
Када се отвори прозор кода, убаците тамо следећи код
2316
Сачувајте код и сада покушајте да изаберете вредности у падајућој листи.
Када смо изабрали Оловка , изабраћемо другу ставку Бележница . И видите, пронашли смо обе ставке (слика испод).
Овај код ће нам омогућити да поновимо избор. Рецимо ако поново изаберемо Оловка ,
поново ћемо пронаћи ставку у пољу за избор.
Објашњење кода
Декларисали смо два низа Олдвалуе и Нова вредност .
Можете да видите да смо направили падајућу листу у ћелији Д4 , зато је наша циљна адреса Д4 . Поред тога, поново смо проверили да ли ћелија користи валидацију података или не користи Таргет.СпециалЦеллс .
Када је вредност изабрана, искључили смо догађаје ( Application.EnableEvents = False
) тако да промене не т поново покренути догађај. Затим смо сачували изабрану ставку у Нова вредност .
Након поништавања промене, поставили смо вредност у Стара вредност . Затим проверите да ли је Олдвалуе празан или не. Ако је празно (значи да је изабрана само једна вредност), вратите Нова вредност . У супротном, спојите Олдвалуе и Неввалуе .
Пре него што завршите ресетовање догађаја, тако да можемо да променимо ако је потребно.
Прочитајте више: Много зависних падајућих листа Екцел ВБА
2. Изаберите више ставки са падајуће листе (само јединствени избор)
У претходном одељку , видели смо вишеструке селекције где је понављање било дозвољено. Ако то не желите, пратите овај одељак.
Ради практичности, користили смо посебан лист за ову демонстрацију. Овог пута смо на Схеет3. Напишите следећи код у прозору кода за овај лист.
2421
Има ли разлике у поређењу са претходним кодом! Погледајте ближе, моћи ћете да уочите малу разлику.
Овде смо користили ВБА функцију под називом ИНСТР . Функција ИНСТР враћа позицију првог појављивања подниза у низу. Посетите овај ИНСТР чланак за додатне информације.
Користећи ову логичку операцију са ИнСтр(1, Олдвалуе, Неввалуе) = 0, проверили смо да ли су вредности пронађене или не. Ако логичка операција врати ТРУЕ (није пронађено раније) онда дозвољава одабир ставке и спајање са ранијом вредношћу.
Сачувајте код и сада покушајте да изаберете ставку која је већ је изабрано.
Овде смо већ изабрали Оловка , ако то желимо поново да селектујемо, не можемо. Не дозвољава дупле вредности.
Прочитајте више: Како да направите падајућу листу са другог листа у Екцел-у
3. Изаберите Ставке у новом реду
До сада смо открили да су ставке одвојене зарезом. У овом одељку ћемо уредити изабране ставке у нове редове.
Ради једноставности, спајамо неколико ћелија са ћелијом Д4 . Да бисте то урадили, изаберите ћелије које желите да спојите и кликните на Мерге &амп; Центар из одељка Поравнање на картици Почетна .
Ћелија ће добити већу висину.
Сада, погледајмо код за одвајање ставки кроз нови ред. Користите следећи код
4549
Једина разлика у односу на претходни код је у томе што смо овај пут користили вбНевЛине између ОлдВалуе и НевВалуе .
вбНевЛине обезбеђује нови ред између ставки.
Сада изаберите ставке.
Изаберемо ставку Оловка која је приказана на горњој слици. Сада изаберите други елемент.
Наћи ћете да су две ставке у различитим редовима.
Овде имамо две вредности које су у два различита реда. Избор друге вредности ће то додати у другу линију. Свака вредност ће бити у новом реду.
Имајте на уму да ако желите да други граничник одвоји ставке, користите га у двоструким наводницима уместо вбНевлине .
Закључак
То је све за данас. Навели смо неколико приступа за вишеструки избор у падајућој листи. Надам се да ће вам ово бити од помоћи. Слободно коментаришите ако вам се нешто чини тешко разумљивим. Јавите нам све друге методе које смо пропустили овде.