/ / Többlistakészlet Kiválasztás az Excel VBA-ban

Multiple List Box Selections az Excel VBA-ban

A MultiSelect tulajdonság ban ben Excel VBA lehetővé teszi a felhasználó számára, hogy több elemet válasszon ki egy listában. A felhasználói forma, amelyet meg fogunk alkotni, a következőképpen néz ki:

Multiple List Box Selections az Excel VBA-ban

A Userform létrehozásához hajtsa végre a következő lépéseket.

1. Nyissa meg a Visual Basic Editor alkalmazást. Ha a Project Explorer nem látható, kattintson a Nézet, a Project Explorer elemre.

2. Kattintson a Beszúrás, Felhasználóformátum elemre. Ha az Eszköztár nem jelenik meg automatikusan, kattintson a Nézet, Eszköztár elemre. A képernyő beállítása az alábbiak szerint történik.

Userform képernyőbeállítás az Excel VBA-ban

3. Adja hozzá a listatáblákat (balról jobbra, jobbra a második), parancsgombok, jelölőnégyzetek (először a bal oldalon, a második a jobb oldalon), keret és opció gombok (először a tetején, a második az első , stb). Miután ez befejeződött, az eredménynek összhangban kell lennie a korábban bemutatott Userform képével. Létrehozhat például egy listabox-vezérlőt az Eszköztáron lévő ListBox elemre kattintva. Ezután húzza át a listát a Userformon. Amikor eléri a "Select Type" keretet, ne felejtse el rajzolni ezt a keretet, mielőtt a három opciógombot elhelyezné.

4. Megváltoztathatja a vezérlők nevét és feliratait. A neveket az Excel VBA kódban használják. Feliratok azok, amelyek a képernyőn jelennek meg. Jó gyakorlat a vezérlők nevének megváltoztatása, de itt nem szükséges, mert ebben a példában csak néhány kontroll van. A Felhasználóformátum, a parancsgombok, a jelölőnégyzetek, a keret és az opciógombok feliratának megváltoztatásához kattintson a Nézet, a Tulajdonságok ablakra, és kattintson az egyes vezérlőkre.

5. A Userform megjelenítéséhez helyezze a parancsgombot a munkalapra, és adja hozzá a következő kódot:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Most létrehozzuk a Sub UserForm_Initialize-t. Amikor a Userform metódust használja, ez a rész automatikusan végrehajtásra kerül.

6. Nyissa meg a Visual Basic Editor alkalmazást.

7. A Project Explorerben kattintson jobb gombbal a UserForm1-re, majd kattintson a View Code (Kód megtekintése) parancsra.

8. Először írja ki az Integer típusú i változót. Állítsa be a változót az Általános nyilatkozatok szakaszban (a kód tetején). Így csak egyszer kell deklarálnia a változót, és használhatja őket többszörös subs.

Dim i As Integer

9. A bal oldali legördülő listáról válassza a Userform (Felhasználóformátum) lehetőséget. Válassza az Initialize lehetőséget a jobb legördülő listából.

10. Adja hozzá a következő kódsorokat:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Sales"
    .AddItem "Production"
    .AddItem "Logistics"
    .AddItem "Human Resources"
End With

OptionButton3.Value = True

End Sub

Magyarázat: az első lista mező kitöltése és a harmadik opciógomb beállítása alapértelmezésként.

Most létrehoztuk a Userform első részét. Bár már jól néz ki, még akkor sem történik semmi, amikor rákattintunk a parancsgombokra vagy a többi vezérlőre.

11. A Project Explorer programban kattintson duplán a UserForm1-re.

12. Kattintson duplán a Hozzáadás gombra.

13. Adja hozzá a következő kódsorokat:

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

Magyarázat: Az Excel VBA hurok az első listán (a lista első elemének nullája (0)), és ha kiválasztja, hozzáadja az elemet a második listához.

14. Kattintson duplán az Eltávolítás gombra.

15. Adja hozzá a következő kódsorokat:

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

Magyarázat: Az Excel VBA hurok a második listán, és ha kiválasztja, eltávolítja az elemet. A számlálóváltozó nyomon követi az eltávolított elemek számát.

16. Kattintson duplán az első opció gombra.

17. Adja hozzá a következő kódsorokat:

Private Sub OptionButton1_Click()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

End Sub

18. Kattintson duplán a második opció gombra.

19. Adja hozzá a következő kódsorokat:

Private Sub OptionButton2_Click()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

End Sub

20. Kattintson duplán a harmadik opció gombra.

21. Adja hozzá a következő kódsorokat:

Private Sub OptionButton3_Click()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

End Sub

Magyarázat: a "Select Type" beállítás az opciógombokra kattintva választható. A korábban bemutatott Userform képe minden beállítás leírását tartalmazza. Ahelyett, hogy beállítaná ezt a beállítást futási időben, beállíthatja ezt a beállítást a tervezési idő alatt is. Ehhez jobb egérgombbal kattintson a listán lévő vezérlőre, majd kattintson a Tulajdonságok gombra. Állítsa a MultiSelect tulajdonságot 0 - fmMultiSelectSingle, 1 - fmMultiSelectMulti vagy 2 - fmMultiSelectExtented értékre.

22. Kattintson duplán az első jelölőnégyzetre.

23. Adja hozzá a következő kódsorokat:

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

Magyarázat: az első jelölőnégyzet bejelölésével az első lista mező összes eleme ki lehet választani / kiiktatni.

24. Kattintson duplán a második jelölőnégyzetre, hogy ugyanazokat a kódsorokat adja hozzá. Csak a CheckBox1-t a CheckBox2-el és a ListBox1-tel a ListBox2-el helyettesítse.

Szintén olvasható: