Voľba viacerých zoznamov v programe Excel VBA
Na MultiSelect vlastnosť v Excel VBA umožňuje používateľovi vybrať viacero položiek v zozname.Chceme vytvoriť Userform vyzerá takto:
Ak chcete vytvoriť tento Userform, vykonajte nasledujúce kroky.
1. Otvorte Editor jazyka. Ak nástroj Project Explorer nie je viditeľný, kliknite na položku Zobraziť, Project Explorer.
2. Kliknite na Insert, Userform. Ak sa panel nástrojov nezobrazí automaticky, kliknite na položku Zobraziť, panel s nástrojmi. Obrazovka by mala byť nastavená tak, ako je uvedené nižšie.
3. Pridanie polí so zoznamom (najprv na ľavej strane druhá vpravo), príkazové tlačidlá, začiarkavacie políčka (najprv na ľavej strane druhá vpravo), rám a možnosť tlačidlá (najprv v hornej, druhý pod prvý a tak ďalej).Akonáhle bola dokončená, výsledok by mal zodpovedať obrázku Userform uvedené skôr.Napríklad vytvoriť ovládací prvok zoznamu poľa kliknutím na ListBox z panela s nástrojmi.Ďalej môžete presunúť zoznam na Userform.Pri príchode "Vyberte typ" rám, Pamätajte si nakresliť rám prvý predtým, ako vložíte tri prepínače.
4. môžete zmeniť názvy a popisy ovládačov.Mená sa používajú v kóde Excel VBA. Titulky sú tie, ktoré sa zobrazia na obrazovke.Je vhodné zmeniť názvy ovládacích prvkov, ale nie je potrebné sem pretože máme len niekoľko ovládacích prvkov v tomto príklade.Zmeniť titulok Userform, príkazové tlačidlá, začiarkavacie políčka, tlačidlá rám a možnosť, kliknite na položku Zobraziť okno Vlastnosti a kliknite na každý ovládací prvok.
5. Ak chcete zobraziť Userform, umiestnite do pracovného hárka príkazové tlačidlo a pridajte nasledujúci riadok kódu:
UserForm1.Show
End Sub
Teraz vytvoríme Sub UserForm_Initialize. Ak použijete metódu Show for Userform, táto podstata sa automaticky vykoná.
6. Otvorte Editor jazyka.
7. V programe Project Explorer kliknite pravým tlačidlom na UserForm1 a potom kliknite na View Code.
8.First, vyhlásiť premenná i typu Integer.Declare premennej v všeobecné vyhlásenia oddiel (v hornej časti kód).Týmto spôsobom budete mať len vyhlásiť premennej raz a môžete ich použiť vo viacerých subs.
9. vyberať ľavým rozbaľovací zoznam Userform. Inicializácia vyberať priamo rozbaľovací zoznam.
10. Pridajte nasledujúce riadky kódu:
With ListBox1
.AddItem "Sales"
.AddItem "Production"
.AddItem "Logistics"
.AddItem "Human Resources"
End With
OptionButton3.Value = True
End Sub
Vysvetlenie: prvý zoznam bude naplnená a tlačidlo tretia možnosť je nastavená ako predvolená.
Teraz sme vytvorili prvú časť Userform.Hoci to vyzerá čistý už, nič sa nestane ale keď klikneme na príkaz tlačidlá alebo iné ovládacie prvky.
11. V programe Project Explorer dvakrát kliknite na UserForm1.
12. dvakrát kliknite na tlačidlo Pridať.
13. Pridajte nasledujúce riadky kódu:
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.List(i)
Next i
End Sub
Vysvetlenie: Excel VBA slučky cez prvý zoznam (zoznam indexové číslo nula (0) pre prvú položku v zozname) a ak začiarknuté, pridá položku do druhého zoznamu.
14. dvakrát kliknite na tlačidlo odstrániť.
15. Pridajte nasledujúce riadky kódu:
Dim counter As Integer
counter = 0
For i = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(i - counter) Then
ListBox2.RemoveItem (i - counter)
counter = counter + 1
End If
Next i
CheckBox2.Value = False
End Sub
Vysvetlenie: Excel VBA slučky cez druhý zoznam rámček a ak začiarknuté, odstráni položku.Počítadlo premennej drží stopu počet odstránených položiek.
16. dvakrát kliknite na prvé tlačidlo Možnosti.
17. Pridajte nasledujúce riadky kódu:
ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0
End Sub
18. dvakrát kliknite na druhé tlačidlo možností.
19. Pridajte nasledujúce riadky kódu:
ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1
End Sub
20. dvakrát kliknite na tretie tlačidlo možností.
21. Pridajte nasledujúce riadky kódu:
ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2
End Sub
Vysvetlenie: "Vyberte typ" nastavenie môžete zvoliť kliknutím na prepínače.Obrázok Userform uvedené skôr dáva Popis jednotlivých nastavení.Miesto konfigurácia tohto nastavenia za behu, môžete tiež nakonfigurovať toto nastavenie v čase návrhu.Na dosiahnutie tohto cieľa, pravým tlačidlom myši kliknite na ovládací prvok zoznamu poľa a potom kliknite na vlastnosti.Nastavte vlastnosť MultiSelect 0 - fmMultiSelectSingle, 1 - 2 - fmMultiSelectExtented alebo fmMultiSelectMulti.
22. dvakrát kliknite na prvý začiarkavacie políčko.
23. Pridajte nasledujúce riadky kódu:
If CheckBox1.Value = True Then
For i = 0 To ListBox1.ListCount - 1
ListBox1.Selected(i) = True
Next i
End If
If CheckBox1.Value = False Then
For i = 0 To ListBox1.ListCount - 1
ListBox1.Selected(i) = False
Next i
End If
End Sub
Vysvetlenie: začiarknutím prvého políčka na všetky položky poľa prvého zoznamu môže byť vybrané / vybratá.
24. dvojklikom na druhé políčko Pridať rovnaký kód čiary.Len nahradiť CheckBox1 CheckBox2 a ListBox1 s ListBox2.