Kódujte nebo naprogramujte seznam ověření dat - příklady kódu VBA

Obsah

Tento tutoriál předvede, jak pomocí Ověření dat pracovat s rozevíracími seznamy v Excelu pomocí VBA.

Ověření dat aplikace Excel vám umožňuje omezit, jaké hodnoty lze zadat do buňky nebo rozsahu. Záznamy můžete omezit na kladná celá čísla, text, data a mnoho dalšího. V tomto tutoriálu se podíváme na to, jak vytvořit rozevírací seznam pro ověření dat v buňce pomocí VBA.

Poznámka: Alternativou k rozevíracímu seznamu Ověření dat je objekt ListBox. ListBoxes lze přidat do listů aplikace Excel. ListBoxes mohou spouštět makra, která se spouštějí při každé změně hodnoty ListBox. ListBoxes se také používají ve VBA Userforms.

Vytvoření rozevíracího seznamu pomocí VBA

V buňce A1 máme text Ovoce a v buňce A2 vytvoříme rozevírací seznam s pěti položkami.

Použijeme metodu Validation.Add a určíme, že parametr Type je xlValidateList. Pomocí parametru Formula1 můžete do seznamu přidat konkrétní položky, které byste chtěli.

Následující kód vytvoří v buňce A2 rozevírací seznam pro ověření dat:

123456 Sub DropDownListinVBA ()Rozsah ("A2"). Validation.Add Typ: = xlValidateList, AlertStyle: = xlValidAlertStop, _Formula1: = "Pomeranč, jablko, mango, hruška, broskev"End Sub

Výsledek je:

Naplňte rozevírací seznam z pojmenovaného rozsahu ve VBA

Pojmenovaný rozsah obsahující položky můžete použít k naplnění rozevíracího seznamu ve VBA. Níže uvádíme níže uvedená pojmenovaná zvířata:

Parametr Formula1 musíme nastavit na jmenovaný rozsah. Následující kód vytvoří rozevírací seznam pro ověření dat v buňce A7 na základě položek v pojmenovaném rozsahu:

123456 Sub PopulateFromANamedRange ()Rozsah ("A7"). Validation.Add Typ: = xlValidateList, AlertStyle: = xlValidAlertStop, _Formula1: = "= Zvířata"End Sub

Výsledek je:

Odebrání rozevíracího seznamu

K odebrání rozevíracího seznamu z buňky můžete použít metodu Validation.Delete. Následující kód by odstranil rozevírací seznam z buňky A7 ve výše uvedeném příkladu:

12345 Dílčí RemoveDropDownList ()Rozsah ("A7"). Validation.DeleteEnd Sub
wave wave wave wave wave