/ / Výber viacerých zoznamov v programe Excel VBA

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:

Voľba viacerých zoznamov v programe Excel VBA

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.

Nastavenie obrazovky používateľa v programe Excel VBA

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:

Private Sub CommandButton1_Click()

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.

Dim i As Integer

9. vyberať ľavým rozbaľovací zoznam Userform. Inicializácia vyberať priamo rozbaľovací zoznam.

10. Pridajte nasledujúce riadky kódu:

Private Sub UserForm_Initialize()

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:

Private Sub CommandButton1_Click()

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:

Private Sub CommandButton2_Click()

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:

Private Sub OptionButton1_Click()

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:

Private Sub OptionButton2_Click()

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:

Private Sub OptionButton3_Click()

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:

Private Sub CheckBox1_Click()

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.

Tiež si prečítajte: