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

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

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

Опција 1. Хоризонтално

Корисник бира ставке са падајуће листе једну по једну и оне се појављују десно од ћелије која се мења, аутоматски се приказују хоризонтално:

Падајуће листе у ћелијама Ц2:Ц5 у овом примеру се креирају на стандардан начин, тј

  1. изаберите ћелије Ц2:Ц5
  2. картица или мени Датум изабрати тим Валидација података
  3. у прозору који се отвори изаберите опцију Листа и наведите као опсег извор ћелије са изворним подацима за листу А1:А8

Затим морате додати макро у модул листа, који ће обавити сав главни посао, односно додати изабране вредности десно од зелених ћелија. Да бисте то урадили, кликните десним тастером миша на картицу листа са падајућим листама и изаберите команду Изворни код. Налепите следећи код у прозор уређивача Висуал Басиц-а који се отвара:

Приватни под Радни лист_Цханге(БиВал Таргет Ас Ранге) При грешци Настави Следеће Ако није Интерсецт(Таргет, Ранге("Ц2:Ц5")) Није ништа и Таргет.Целлс.Цоунт = 1 Тада Апплицатион.ЕнаблеЕвентс = Фалсе Иф Лен(Таргет.Оффсет) (0, 1)) = 0 Затим Таргет.Оффсет(0, 1) = Таргет Елсе Таргет.Енд(клТоРигхт).Оффсет(0, 1) = Таргет Енд Иф Таргет.ЦлеарЦонтентс Апплицатион.ЕнаблеЕвентс = Труе Енд Иф Енд Суб  

Ако је потребно, замените осетљиви опсег падајућих листа Ц2:Ц5 у другом реду овог кода својим.

Опција 2. Вертикална

Исто као у претходној верзији, али нове изабране вредности се не додају на десно, већ на дно:

То се ради на потпуно исти начин, али се код макроа руковаоца незнатно мења:

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

Поново, ако је потребно, замените осетљиви опсег падајућих листа Ц2:Ф2 својим сопственим у другом реду овог кода.

Опција 3. Са акумулацијом у истој ћелији

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

Падајуће листе у зеленим ћелијама креирају се на потпуно стандардан начин, као иу претходним методама. Сав посао, опет, обавља макро у модулу листа:

Приватни под Радни лист_Цханге(БиВал Таргет Ас Ранге) При грешци Настави Следеће Ако није Интерсецт(Таргет, Ранге("Ц2:Ц5")) Није ништа и Таргет.Целлс.Цоунт = 1 Онда Апплицатион.ЕнаблеЕвентс = Фалсе невВал = Циљна апликација.Ундо олдвал = Таргет Иф Лен(олдвал) <> 0 И олдвал <> невВал Тхен Таргет = Таргет & "," & невВал Елсе Таргет = невВал Енд Иф Ако је Лен(невВал) = 0 Онда Таргет.ЦлеарЦонтентс Апплицатион.ЕнаблеЕвентс = Труе Енд Ако Енд Суб  

Ако желите, можете заменити знак за раздвајање (зарез) у 9. реду кода својим (на пример, размаком или тачком и зарезом).

  • Како направити једноставну падајућу листу у ћелији Екцел листа
  • Падајућа листа са садржајем
  • Додата је падајућа листа са недостајућим опцијама
  • Шта су макрои, како их користити, где убацити макро код у Висуал Басиц

Ostavite komentar