VBA Listbox - vybraná položka

Tento článok ukáže, ako pracovať s vybratou položkou v zozname v programe Excel VBA.

Políčka so zoznamom sa vo veľkej miere používajú vo formulároch VBA, ale dajú sa použiť aj v pracovnom hárku programu Excel. Ukazujú užívateľom zoznam možností, z ktorých si môže používateľ vybrať jednu alebo viac.

Vytvorenie poľa so zoznamom vo formulári VBA

Na vytvorenie zoznamu vo formulári VBA musíme najskôr vytvoriť UserForm.

Po vytvorení formulára vyberte v poli nástrojov ovládací prvok Zoznam a potom potiahnutím vytvorte vo formulári pole so zoznamom.

Pridávanie hodnôt do poľa so zoznamom

V prípade inicializácie formulára zadajte nasledujúci kód. Pole so zoznamom vyzdvihne hodnoty, ktoré sú uložené v rozsahu buniek v hárku programu Excel.

123456 Private Sub UserForm_Initialize ()Dim rng As RangePre každý rozsah v rozsahu („A1: A50“)Me.lstState.AddItem rng.ValueĎalší rngKoniec pod

Keď spustíme formulár, zobrazí sa pole so zoznamom, ako je znázornené na obrázku nižšie:

Výber hodnôt zo zoznamu

Štandardne je možné v poli so zoznamom vybrať jednu hodnotu v užívateľskom formulári. Toto je však možné zmeniť zmenou vlastnosti viacnásobného výberu v zozname.

Kliknutím na pole zoznamu ho vyberte a potom v okne Vlastnosti zmeňte vlastnosť viacnásobného výberu z 0-frmMultiSelectSingle do 1-frmMultiVybraťMulti.

Keď teraz spustíme formulár, v poli so zoznamom môžeme vybrať viac ako jednu možnosť.

Ak zmeníme možnosť na 2-frmMultiSelectExtended, to znamená, že môžeme vybrať jednu z hodnôt a potom, podržte kláves SHIFT, vyberte ďalšiu hodnotu ďalej v zozname a tiež sa vyberú všetky položky medzi 2 vybranými hodnotami.

Programovanie VBA | Generátor kódu pracuje za vás!

Práca s vybranými hodnotami vo VBA

V závislosti od typu možnosti, ktorú sme použili pre vlastnosť Viacnásobný výber v poli so zoznamom, existuje niekoľko spôsobov, ako môžeme použiť hodnotu alebo hodnoty vybraté v poli so zoznamom v kóde VBA.

Priradenie hodnoty premennej

Môžeme použiť After_Update udalosť zo zoznamu na priradenie hodnoty vybratej k premennej.

Po prvé, vytvorme premennú na úrovni modulu v hornej časti modulu formulára.

Pod slovami, Možnosť explicitná, vytvorte nasledujúcu reťazcovú premennú.

1 Dim strState ako reťazec.

Keď sme vytvorili túto premennú, môžeme dvakrát kliknúť na pole Zoznam a prejsť na kód za formulárom, alebo môžeme kliknúť na tlačidlo kódu v editore VBE.

V zozname sa automaticky vytvorí kliknutie na udalosť. Vyberte položku After_Update Udalosť tvorí zoznam dostupných procedúr.

V prípade After_Update zadajte nasledujúci kód:

123 Súkromný pod lstState_AfterUpdate ()strState = Me.lstStateKoniec pod

POZNÁMKA: Udalosť Click môžete odstrániť, pretože nie je potrebná.

Ak teraz spustíme formulár a klikneme na zoznam, vybraná hodnota sa uloží do premennej. Aby sme to mohli otestovať, môžeme do kódu vložiť bod BREAK.

Keď teraz po spustení formulára klikneme na pole so zoznamom, kód prejde do režimu DEBUG a zastaví sa v bode zlomu. Ak potom na klávesnici stlačíme F8, aby sme sa v kóde posunuli o krok ďalej, premenná sa vyplní vybratou položkou v zozname.

Túto hodnotu môžeme zobraziť tak, že umiestnime myš na premennú.

ALEBO

Hodnotu môžeme vidieť v okamžitom okne.

Ste unavení z hľadania príkladov kódu VBA? Skúste AutoMacro!

Na vrátenie hodnoty do Excelu použite príkazové tlačidlo

Najprv vo formulári vytvoríme príkazové tlačidlo, aby bolo pomocou tlačidla OK možné vrátiť hodnotu alebo hodnoty vybraté v zozname do programu Excel.

Vyberte ovládací prvok Príkazové tlačidlo a potom kliknutím a ťahaním vo formulári tlačidlo vytvorte.

V okne Vlastnosti zmeňte názov tlačidla na cmdOK, a zmeňte Titulok a Akcelerátor tlačidla.

Účelom akcelerátora je, aby v tomto prípade používateľ použil klávesnicu na aktiváciu tlačidla Alt+O. by aktivovalo tlačidlo.

Aby príkazové tlačidlo fungovalo, musíme za neho pridať kód, aby sa po kliknutí na tlačidlo kód spustil. Toto sa nazýva udalosť kliknutia tlačidla.

Na udalosť kliknutia sa dostanete dvojitým kliknutím na tlačidlo v návrhovom zobrazení formulára. Udalosť kliknutia sa vytvorí automaticky, pretože je to udalosť, ktorá sa najčastejšie používa pre príkazové tlačidlá.

Do udalosti kliknutia príkazového tlačidla zadajte nasledujúci kód.

123 Súkromný podradený cmdOK_Click ()Rozsah ("E1") = strStateKoniec pod

Kód vyzdvihne premennú, ktorú sme deklarovali v udalosti After_Update v ListBoxe, a vráti hodnotu do rozsahu v programe Excel.

Alternatívne môžeme hodnotu vyzdvihnúť priamo zo zoznamu bez použitia premennej.

123 Súkromný podradený cmdOK_Click ()Rozsah ("E1") = me.lstStateKoniec pod

Keď spustíme formulár, vybratá hodnota sa vráti do programu Excel, keď klikneme na tlačidlo OK.

Výber viacerých hodnôt

Ak sme nastavili vlastnosť viacnásobného výberu v zozname na 1 alebo 2, čo nám umožňuje vybrať viac hodnôt v zozname, potom sa kód na výber týchto hodnôt mierne líši.

The After_Update udalosť sa už nespúšťa pri výbere hodnôt v zozname - túto udalosť preto nemôžeme použiť.

Stále môžeme použiť udalosť kliknutia na príkazové tlačidlo, ale na to, aby sme ich vrátili do Excelu, musíme prejsť hodnotami vybratými v zozname.

Do príkazového tlačidla Kliknite na položku Udalosť zadajte nasledujúci kód.

12345678910 Súkromný podradený cmdOK_Click ()Dim x As IntegerRozsah („E1“). VybertePre x = 0 To Me.lstState.ListCount - 1Ak je Me.lstState.Selected (x) = True ThenActiveCell = Me.lstState.List (x)ActiveCell.Offset (1, 0). VyberteKoniec AkDalej xKoniec pod

Keď teraz spustíme formulár, na hárok programu Excel sa vrátia iba vybrané hodnoty.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave