/ / Odabir više okvira popisa u programu Excel VBA

Odabir više okvira popisa u programu Excel VBA

Ovaj MultiSelect nekretnine u Excel VBA omogućuje korisniku odabir više stavki u okviru popisa.Korisnički obrazac ćemo kreirati izgleda ovako:

Odabir više okvira popisa u programu Excel VBA

Da biste stvorili ovaj Userform, izvršite sljedeće korake.

1. Otvorite Visual Basic Editor. Ako Project Explorer nije vidljiv, kliknite View, Project Explorer.

2. Kliknite Insert, Userform. Ako Toolbox ne pojavljuje automatski, kliknite View, Toolbox. Vaš bi se zaslon trebao postaviti kao u nastavku.

Postavljanje zaslona korisničkog formata u programu Excel VBA

3. dodati okvire popisa (prvo na lijevo, drugi desno), naredbenih gumba, potvrdnih okvira (prvi na lijevo, drugi desno), okvir i mogućnosti gumba (prvo na vrhu, drugi ispod prve i tako dalje).Kad ovo završi, rezultat bi trebao biti u skladu sa slikom korisnički obrazac prikazan ranije.Na primjer, stvoriti kontrole okvira popisa klikom na okvir popisa iz alatnog okvira.Dalje, možete vući okvir popisa za korisnički obrazac.Kada stignete na "Odaberite tip" okvir, zapamtiti da se ovaj okvir prvo prije nego što se tri gumba u to.

4. promijenite imena i naslove kontrola.Imena se koristi u Excel VBA kod. Opisi su one koje se pojavljuju na zaslonu.To je dobra praksa za promjenu imena kontrole, ali to nije potrebno ovdje jer imamo neke kontrole u ovom primjeru.Da biste promijenili Opis korisnički obrazac, gumba, potvrdnih okvira, okvir i mogućnosti gumba, kliknite Prikaz, svojstva Windows i kliknite na svaku kontrolu.

5. Da biste prikazali Userform, stavite gumb naredbe na radni list i dodajte sljedeću liniju koda:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Sad ćemo stvoriti Sub UserForm_Initialize. Kada koristite metodu Prikaži za Korisnički obrazac, ovaj će podvrgnuti automatski.

6. Otvorite Visual Basic Editor.

7. U Project Exploreru desnom tipkom miša kliknite UserForm1 i zatim kliknite View Code.

8.First, deklarirati varijablu sam tipa Integer.Declare varijabla u Opće deklaracije dio (na vrhu kod).Na taj način samo morate deklarirati varijablu jednom i možete ih koristiti u više subs.

Dim i As Integer

9. Odaberite korisnički obrazac na lijevom padajućem popisu. Redu padajućem popisu odaberite inicijalizaciju.

10. dodati sljedeće retke koda:

Private Sub UserForm_Initialize()

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

OptionButton3.Value = True

End Sub

Objašnjenje: prvi okvir popisa će biti ispunjen i treći izborni gumb Postavi kao zadano.

Sada ste stvorili prvi dio u korisnički obrazac.Iako već izgleda uredno, ništa se neće dogoditi još kada smo kliknite naredbu gumba ili drugih kontrola.

11. U Project Exploreru dvokliknite UserForm1.

12. dvaput kliknite na dodati gumb.

13. Dodajte sljedeće retke koda:

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

Objašnjenje: Excel VBA petlje kroz prvi okvir popisa (popis indeks broj nula (0) za prvu stavku na popisu) i, ako je potvrđen, dodaje stavku drugi okvir popisa.

14. dvaput kliknite na gumb Ukloni.

15. Dodajte sljedeće retke koda:

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

Objašnjenje: Excel VBA petlje kroz drugi okvir popisa i, ako je potvrđen, uklanja stavku.Brojač varijabla sadrži pojam o broju uklonjenih stavki.

16. dvaput kliknite na prvi gumb mogućnosti.

17. dodati sljedeće retke koda:

Private Sub OptionButton1_Click()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

End Sub

18. dvaput kliknite na drugi gumb mogućnosti.

19. dodati sljedeće retke koda:

Private Sub OptionButton2_Click()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

End Sub

20. dvaput kliknite na treći gumb mogućnosti.

21. dodati sljedeće retke koda:

Private Sub OptionButton3_Click()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

End Sub

Objašnjenje: "Odaberite tip" postavke možete odabrati klikom na gumb mogućnosti.Slika korisnički obrazac prikazan ranije daje opis svake postavke.Umjesto konfiguriranje ove postavke za vrijeme izvođenja, možete konfigurirati ovu postavku u vrijeme izrade.Da bi to postigli, desnom tipkom miša kliknite na kontrolu okvira popisa i zatim kliknite na svojstva.Svojstvo MultiSelect 0 - fmMultiSelectSingle, 1 - fmMultiSelectMulti ili 2 - fmMultiSelectExtented.

22. dvaput kliknite na prvi potvrdni okvir.

23. dodati sljedeće retke koda:

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

Objašnjenje: označavanjem prvi potvrdni okvir, sve stavke prvi okvir popisa može odabrati / nije odabrana.

24. duplo kliknite na okvir drugog dodati isti broj redaka.Samo zamijenite CheckBox1 s CheckBox2 i ListBox1 s ListBox2.

Također pročitajte: