Jak vytvořit závislý Combobox ve VBA Excel?

Víme, jak vytvořit kaskádové rozevírací seznam na listu pomocí ověření dat. Jak ale vytvoříme kaskádový rozevírací seznam komboboxů na uživatelské formě VBA. To je jedna ze základních potřeb.

V tomto článku se naučíme, jak vytvořit závislý combobox ve VBA.

Logika pro závislý Combobox ve VBA

K vytvoření závislého comboboxu ve VBA potřebujeme inicializovat combobox v případě zdrojového prvku. Pokud například kombobox závisí na skupině přepínačů, měl by se kód pro načtení závislého komboboxu spustit ihned poté, co někdo vybere přepínač. Nebo pokud combobox závisí na jiném comboboxu, pak by se v závislosti na comboboxu měl načíst při každé změně hodnoty v comboboxu.

Dost teorie. Pojďme se podívat na příklad, abychom zjistili, jak to funguje.

ComboBox v závislosti na jiném Comboboxu

Vytvořte dva combobox. Nejprve byste měli uvést několik názvů zemí. Druhý by měl uvést názvy států vybrané země. Pokud uživatel změní zemi v prvním komboboxu, měl by být změněn seznam druhého comboboxu.

Vytvořme formulář, který má dva kombinované pole se štítky zemí a států a příkazovým tlačítkem pro odeslání vstupu.

První combobox by měl obsahovat názvy zemí a nezávisí na žádné hodnotě. Načteme jej tedy do události form_intialize stejně jako pro základní inicializaci comboboxu.

Dvakrát klikněte na uživatelský formulář. Otevře se oblast kódování v objektu UserForm. Nyní z levé rozevírací nabídky vyberte uživatelský formulář. Potom z pravé rozevírací nabídky vyberte inicializovat.

Bude vložen prázdný pod název UserForm_Initialize (). Cokoli napsané v tomto dílčím odstavci bude provedeno, než se zobrazí uživatelská forma.

Zde tedy napíšeme inicializační kód pro combobox.

Soukromý sub UserForm_Initialize () země = Pole („Indie“, „Nepál“, „Bhútán“, „Shree Lanka“) UserForm1.ComboBox1.List = uvádí End Sub 

Máme inicializován náš první combobox. Kdykoli načtete uživatelský formulář, bude připraven první combox s názvy zemí.

Nyní k načtení druhého comboboxu se musíme podívat, jaká hodnota je vybrána v prvním combobox1, a spustit kód pokaždé, když combobox1 změní své hodnoty. K tomu použijeme událost Combobox_AfterUpdate.

Z levého rozevíracího seznamu vyberte combobox1. Z pravé rozevírací nabídky vyberte AfterUpdate. Můžeme také použít událost Change, ale v článku se budeme držet AfterUpdate.

Nyní napište níže uvedený kód:

Private Sub ComboBox1_AfterUpdate () Select Case ComboBox1.Value Case "India": States = Array ("Delhi", "UP", "UK", "Gujrat", "Kashmir") Case "Nepal": States = Array ("Arun Kshetra "," Janakpur Kshetra "," Kathmandu Kshetra ", _" Gandak Kshetra "," Kapilavastu Kshetra ") Případ" Bhutan ": uvádí = Array (" Bumthang "," Trongsa "," Punakha "," Thimphu "," Paro ") Případ" Shree Lanka ": uvádí = Pole (" Galle "," Ratnapura "," Colombo "," Badulla "," Jaffna ") Konec Vyberte ComboBox2.List = uvádí Konec Sub 

Zde jsme použili příkaz select case. Příkaz select case je dobrý, když chceme vidět, jaká hodnota je vybrána z mnoha hodnot. Podrobně jsem to zde vysvětlil.

K uložení hodnoty vložené uživatelem použijte tlačítko Odeslat. Do příkazového tlačítka Odeslat napište níže uvedený kód, abyste zemi a stát vybraný uživatelem uložili do listu.

Private Sub CommandButton1_Click () country = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets ("sheet1"). Range ("G1") = country ThisWorkbook.Worksheets ("sheet1"). Range ("H1") = State Unload Me End Sub 

Chcete -li nyní zobrazit uživatelský formulář, vložte do listu tlačítko a napište níže uvedený kód. Nebo můžete použít jednoduchý modul k zobrazení formuláře uživatele.

Sub load_userform () UserForm1. Zobrazit konec Sub 

Nyní spusťte load_userform kód.

Jak to funguje?

Když spustíte sub, který má kód userform.show, VBA spustí události userform_initialize bezprostředně po spuštění příkazu userform.show. V případě userform_intialize jsme inicializovali první combobox, který má seznam zemí. Poté se formulář zobrazí uživateli.

Nyní, když uživatel vybere jakoukoli hodnotu z prvního comboboxu, spustí se událost combobox1_AfterUpdate. Tato událost obsahuje kód ke kontrole, jaká hodnota je vybrána uživatelem v combobox1 a na základě této hodnoty nastaví pole stavů a ​​inicializuje hodnoty combobox2 pomocí pole stavů.

Takže jo, lidi, takto vytvoříte kaskádový kombobox v uživatelské formě VBA. Doufám, že jsem byl dostatečně vysvětlující a článek splnil svůj účel. Máte -li jakékoli pochybnosti týkající se tohoto článku nebo jakéhokoli tématu VBA, zeptejte se mě v sekci komentáře níže.

Začínáme s UserForms aplikace Excel VBA| Vysvětlím, jak vytvořit formulář v Excelu, jak používat sadu nástrojů VBA, jak zacházet s uživatelskými vstupy a nakonec jak ukládat uživatelské vstupy. Tato témata si projdeme pomocí jednoho příkladu a průvodce krok za krokem.

Proměnné VBA v Excelu| VBA znamená Visual Basic for Applications. Jedná se o programovací jazyk od společnosti Microsoft. Používá se s aplikacemi Microsoft Office, jako jsou MSExcel, MS-Word a MS-Access, zatímco proměnné VBA jsou specifická klíčová slova.

Proměnný rozsah Excel VBA| Ve všech programovacích jazycích máme specifikátory přístupu k proměnným, které definují, odkud lze k definované proměnné přistupovat. Excel VBA není výjimkou. VBA má také specifikátory rozsahu.

Argumenty ByRef a ByVal | Když je argument předán jako ByRef argument jinému sub nebo funkci, je odeslán odkaz na skutečnou proměnnou. Jakékoli změny provedené v kopii proměnné se projeví v původním argumentu.

Odstraňte listy bez výzev k potvrzení pomocí VBA v aplikaci Microsoft Excel | Protože odstraňujete listy pomocí VBA, víte, co děláte. Chtěli byste říct Excelu, aby toto varování nezobrazoval a ten zatracený list smazal.

Přidat a uložit nový sešit pomocí jazyka VBA v aplikaci Microsoft Excel 2016| V tomto kódu jsme nejprve vytvořili odkaz na objekt sešitu. A pak jsme to inicializovali novým objektem sešitu. Výhodou tohoto přístupu je, že na tomto novém sešitu můžete snadno provádět operace. Stejně jako ukládání, zavírání, mazání atd

Zobrazit zprávu na stavovém řádku aplikace Excel VBA| Stavový řádek v Excelu lze použít jako monitor kódu. Když je váš kód VBA dlouhý a provádíte několik úkolů pomocí VBA, často deaktivujete aktualizaci obrazovky, abyste neviděli, že tato obrazovka bliká.

Vypněte varovné zprávy pomocí VBA v aplikaci Microsoft Excel 2016| Tento kód nejenže zakáže výstrahy VBA, ale také zvyšuje časovou účinnost kódu. Uvidíme jak.

Oblíbené články:

50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 klávesových zkratek vám umožní pracovat v Excelu ještě rychleji.

Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.

COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétních hodnot nemusíte data filtrovat. Funkce Countif je nezbytná pro přípravu řídicího panelu.

Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave