ВБА Листбок

У ВБА можете да креирате Листа кутија где корисник може изабрати једну од наведених опција. Листбок се често користи у корисничким облицима, али се може користити и на радном листу. У овом водичу ћете научити како да креирате, попуните и избришете Листбок. Такође ћете видети како да добијете кориснички избор у ВБА и да га користите у коду.

Ако желите да научите како да креирате ЦомбоБок, кликните овде: ВБА ЦомбоБок

Ако желите да научите како да направите поље за потврду, кликните овде: ВБА поље за потврду

Направите оквир за листу

Да бисте уметнули Листбок у радни лист, морате да одете на Картица за програмере, кликните Инсерт и у оквиру АцтивеКс контроле изаберите Листа кутија:

Слика 1. Уметните Листбок у радни лист

Када изаберете Листбок који сте уметнули, можете кликнути на Некретнине под Картица за програмере:

Слика 2. Промените својства оквира за листу

Овде можете поставити различита својства Листбок -а. За почетак смо променили атрибут Име до лстЛистБок. Сада можемо да користимо Листбок са овим именом у ВБА коду.

Попуните Листбок у ВБА коду

Прво, морамо попунити Листбок вредностима. У већини случајева, Листбок се мора попунити када се радна свеска отвори. Због тога морамо да ставимо код за попуњавање Листбока у објекту Радна свеска, процедура Отвори. Ова процедура се извршава сваки пут када корисник отвори радну свеску. Ево кода:

123456789 Витх Схеет1.лстЛистБок.АддИтем "Јохн".АддИтем "Мицхаел".АддИтем "Јеннифер".АддИтем "Лилли".АддИтем "Роберт"Завршити

Као што можете видети на слици 3, ми смо попунили нашу листу са 5 имена (Јохн, Мицхаел, Јеннифер, Лилли и Роберт):

Слика 3. Напуните Листбок у ВБА

Напуните оквир за списак из опсега ћелија

Други могући начин попуњавања Листбок -а је да дозволите кориснику да то уради. Листбок се може повезати са опсегом ћелија. Стога, сваки пут када корисник унесе нову вредност у опсег ћелија, Листбок ће се ажурирати том вредношћу.

Ако желите да омогућите ово, морате да одете на Некретнине ЛистБок -а и поставите атрибут ЛистФиллРанге:

Слика 4. Попуните Листбок из опсега ћелија

Наш Листбок смо повезали са опсегом Е2: Е5, где стављамо имена која желимо (Натхан, Харри, Георге, Роберта). Као резултат тога, Листбок је сада попуњен овим називима.

Набавите изабрану ставку листе у ВБА

Сврха Листбок -а је да корисницима омогући избор. Да бисте дохватили вредност коју је одабрао корисник, морате да користите овај код:

123 Затамни стрСелецтедИтем као варијантустрСелецтедИтем = Схеет1.лстЛистБок.Валуе

Избор корисника је у атрибуту Вредност оф Схеет1.лстЛистбок објекат. Ова вредност је додељена променљивој стрСелецтедИтем:

Слика 5. Добијте изабрану вредност из листе у ВБА

Изабрали смо Харри у Листбок -у и извршила процедуру. Као што можете видети на слици 5, вредност стрСелецтедИтем је Харри, што је вредност коју смо одабрали. Надаље, ову варијаблу можете обрадити у коду.

Обришите оквир са листом

Да бисте обрисали Листбок у ВБА, морате да користите Јасно начин Схеет1.лстЛистБок објекат. Избрисаће све ставке из листе. Ево кода:

1 Схеет1.лстЛистБок.Цлеар

Када извршимо код, добијамо празан Листбок:

Слика 6. Очистите оквир са листом

Користите оквир са листом у корисничком обрасцу

Као што смо споменули, Листбок се најчешће користи у корисничким облицима. Да бисмо објаснили како то можете учинити, прво ћемо уметнути Усерформ. У уређивачу ВБА кликните десним тастером миша на Име модула, па кликните на Инсерт и изабрати УсерФорм:

Слика 7. Уметните кориснички образац

Да бисте приказали контроле за уметање, морате омогућити Тоолбок. Да бисте то урадили, кликните наТоолбок икону на траци са алаткама. Након тога добићете прозоре са свим доступним контролама. Можете кликнути на Листа кутија да бисте га креирали у корисничком облику.

Слика 8. Уметните Листбок у Усерформ

Назват ћемо ЦомбоБок цмбЦомбоБок. Да бисмо га попунили вредностима, морамо да ставимо следећи код у методу Иницијализујте објекта УсерФорм:

12345678910111213 Привате Суб УсерФорм_Инитиализе ()Витх УсерФорм1.лстЛистБок.АддИтем "Јохн".АддИтем "Мицхаел".АддИтем "Јеннифер".АддИтем "Лилли".АддИтем "Роберт"ЗавршитиЕнд Суб

Овај код се покреће сваки пут када корисник покрене Усерформ и попуни Листбок са ових 5 имена:

Слика 9. Листбок са вредностима у корисничком облику

Ако желите да добијете изабрану вредност из ЦомбоБок -а, морате користити исту логику за Цомбобок на радном листу, што је објашњено раније у чланку.

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

wave wave wave wave wave