Изаберите Више ставки са падајуће листе у Екцелу

Једна од мојих колега ме је питала да ли је могуће извршити више избора на падајућој листи у Екцелу.

Када креирате падајућу листу, можете направити само један избор. Ако изаберете другу ставку, прва ће се заменити новом.

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

Нешто као што је приказано испод на слици:

То никако не можете учинити помоћу уграђених функција програма Екцел.

Једини начин је да користите ВБА код, који се покреће сваки пут када направите избор и додаје изабрану вредност постојећој вредности.

Гледајте видео - Како изабрати више ставки са Екцел падајуће листе

Како направити више избора на падајућој листи

У овом водичу ћу вам показати како да направите више избора на падајућој листи програма Екцел (са понављањем и без понављања).

Ово је једно од најпопуларнијих Екцел водича на овој веб локацији. Пошто добијам много сличних питања, одлучио сам да на крају овог водича направим одељак са често постављаним питањима. Дакле, ако имате питања након што прочитате ово, прво погледајте одељак Честа питања.

Постоје два дела за стварање падајуће листе која омогућава вишеструки избор:

  • Креирање падајуће листе.
  • Додавање ВБА кода у позадину.

Креирање падајуће листе у програму Екцел

Ево корака за креирање падајуће листе у Екцелу:

  1. Изаберите ћелију или опсег ћелија у којима желите да се појави падајућа листа (Ц2 у овом примеру).
  2. Идите на Подаци -> Алати за податке -> Валидација података.
  3. У дијалогу Валидација података, на картици поставки, изаберите „Листа“ као критеријуме провере.
  4. У пољу Извор изаберите ћелије које у падајућем менију имају жељене ставке.
  5. Притисните ОК.

Сада ћелија Ц2 има падајућу листу која приказује називе ставки у А2: А6.

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

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

Следећа два одељка овог водича даће вам ВБА код који дозвољава вишеструке изборе на падајућој листи (са и без понављања).

ВБА код за допуштање вишеструких одабира на падајућој листи (са понављањем)

Испод је Екцел ВБА код који ће нам омогућити да изаберемо више ставки са падајуће листе (омогућавајући понављања у избору):

Привате Суб Ворксхеет_Цханге (БиВал Таргет Ас Ранге) 'Цоде би Сумит Бансал фром хттпс://трумпекцел.цом' Да бисте извршили вишеструке изборе на падајућој листи у Екцелу Дим Олдвалуе Ас Стринг Дим Неввалуе Ас Стринг Он Грешка ГоТо Екитсуб Иф Таргет.Аддресс = "$ Ц $ 2" Затим ако Таргет.СпециалЦеллс (клЦеллТипеАллВалидатион) није ништа Онда идите на ГоТо Екитсуб Елсе: Иф Таргет.Валуе = "" Онда ГоТо Екитсуб Елсе Апплицатион.ЕнаблеЕвентс = Фалсе Неввалуе = Таргет.Валуе Апплицатион.Ундо Олдвалуе = Таргет.Валуе. Иф Олдвалуе = "" Тхен Таргет.Валуе = Неввалуе Елсе Таргет.Валуе = Олдвалуе & "," & Неввалуе Енд Иф Енд Ако се заврши Ако Апплицатион.ЕнаблеЕвентс = Труе Екитсуб: Апплицатион.ЕнаблеЕвентс = Труе Енд Суб 

Сада морате да поставите овај код у модул у ВБ Едитор -у (као што је приказано испод у одељку „Где ставити ВБА код“).

Када поставите овај код у позадину (касније у овом водичу), то ће вам омогућити да направите више избора у падајућем менију (као што је приказано испод).

Имајте на уму да ако одаберете ставку више пута, она ће бити унета поново (дозвољено је понављање).

Испробајте сами … Преузмите датотеку за пример

ВБА код за допуштање вишеструких одабира на падајућој листи (без понављања)

Многи људи постављају питања о коду за одабир више ставки са падајуће листе без понављања.

Ево кода који ће осигурати да се ставка може изабрати само једном како се не би понављало:

Привате Суб Ворксхеет_Цханге (БиВал Таргет Ас Ранге) 'Цоде би Сумит Бансал фром хттпс://трумпекцел.цом' Омогућити вишеструке изборе на падајућој листи у Екцелу (без понављања) Дим Олдвалуе Ас Стринг Дим Неввалуе Ас Стринг Апплицатион.ЕнаблеЕвентс = Тачна грешка ГоТо Екитсуб Иф Таргет.Аддресс = "$ Ц $ 2" Онда ако Таргет.СпециалЦеллс (клЦеллТипеАллВалидатион) није ништа Онда ГоТо Екитсуб Елсе: Иф Таргет.Валуе = "" Онда ГоТо Екитсуб Елсе Апплицатион.ЕнаблеЕвентс = Фалсе Неввалуе = Таргет. Вредност Апплицатион.Ундо Олдвалуе = Таргет.Валуе Иф Олдвалуе = "" Тада је Таргет.Валуе = Нова вредност Друга ако је ИнСтр (1, Олдвалуе, Нова вредност) = 0 Тада је Таргет.Валуе = Олдвалуе & "," & Нова вредност Друга: Таргет.Валуе = Олдвалуе Енд Иф Енд Енд Енд Енд Енд Енд Апплицатион.ЕнаблеЕвентс = Труе Екитсуб: Апплицатион.ЕнаблеЕвентс = Труе Енд Суб

Сада морате да поставите овај код у модул у ВБ Едитор -у (као што је приказано у следећем одељку овог водича).

Овај код ће вам омогућити да изаберете више ставки са падајуће листе. Међутим, ставку ћете моћи да изаберете само једном. Ако покушате да га поново изаберете, ништа се неће догодити (као што је приказано испод).

Испробајте сами … Преузмите датотеку за пример

Где ставити ВБА код

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

Следите доле наведене кораке да бисте ВБА код ставили у позадину програма Екцел:

  1. Идите на картицу Девелопер и кликните на Висуал Басиц (можете користити и тастерску пречицу - Алт + Ф11). Ово ће отворити уређивач Висуал Басиц.
  2. Требало би да постоји окно Пројецт Екплорер са леве стране (ако га нема, користите Цонтрол + Р да бисте га учинили видљивим).
  3. Двапут кликните на Назив радног листа (у левом окну) где се налази падајућа листа. Ово отвара прозор кода за тај радни лист.
  4. У прозору кода копирајте и залепите горњи код.
  5. Затворите ВБ Едитор.

Сада, када се вратите на падајући мени и направите изборе, то ће вам омогућити да направите више избора (као што је приказано испод):

Испробајте сами … Преузмите датотеку за пример

Белешка: Пошто за ово користимо ВБА код, морате сачувати радну свеску са екстензијом .клс или .клсм.

Често постављана питања (ФАК)

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

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

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave