/ / Useita luetteloruutuvalintoja Excel VBA: ssa

Useiden luetteloruudun valinta Excel VBA: ssa

Ja Monivalinta-ominaisuus sisään Excel VBA käyttäjä voi valita useita kohteita luetteloruutuun.Aiomme luoda Userform näyttää seuraavalta:

Useiden luetteloruudun valinta Excel VBA: ssa

Tee tämä Käyttäjäluettelo seuraavasti.

1. Avaa Visual Basic -editori. Jos Project Explorer ei ole näkyvissä, valitse View, Project Explorer.

2. Napsauta Insert, Userform. Jos työkalupakki ei tule näkyviin automaattisesti, valitse Näytä, työkalupakki. Näyttösi on määritettävä alla.

Userform-näytön asetukset Excel VBA: ssa

3. Lisää luetteloon laatikot (ensin vasemmalla toinen oikealla), komentopainikkeita, valintaruudut (ensin vasemmassa, toinen oikealla), runko ja valintanappien (ensin alkuun, toinen alla ensimmäinen ja niin edelleen).Kun tämä on valmis, tulos olisi oltava Userform aiemmin osoittanut kuva.Esimerkiksi luoda luetteloruutu napsauttamalla luetteloruudun työkaluryhmästä.Seuraavaksi voit vetää luetteloruutuun Userform.Kun tulet ”Valitse tyyppi” runko, muista piirtää kehyksen ensin, ennen kuin laitat kolmesta valintanapista se.

4. Voit muuttaa nimiä ja ohjausobjektit kuvatekstejä.Nimiä käytetään Excel VBA-koodia. Kuvatekstit ovat ne, jotka näyttävät näytössä.Se on hyvä käytäntö, voit muuttaa ohjausobjektien nimet, mutta se ei ole tarpeen täällä, koska meillä on vain muutamia tarkastuksia tämän esimerkin.Voit muuttaa otsikon Userform-, painikkeita, valintaruutuja, runko ja valintanappien klikkaa Näytä, ominaisuudet-ikkunassa ja napsauttamalla kutakin ohjausobjektia.

5. Kun haluat näyttää Userform, aseta komentokehote laskentatauluun ja lisää seuraava koodirivi:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Aiomme nyt luoda Sub UserForm_Initialize. Kun käytät User-muodon Show-menetelmää, tämä osa suoritetaan automaattisesti.

6. Avaa Visual Basic -editori.

7. Napsauta Project Explorer -ohjelmaa hiiren kakkospainikkeella UserForm1 ja sen jälkeen Näytä koodi.

8.First, määrittää muuttujaa, olen tyyppi Integer.Declare muuttujan yleisluonteisia julistuksia jakso (ylhäällä koodi).Näin sinun tarvitsee vain ilmoittaa muuttujan kerran ja voit käyttää niitä useita subs.

Dim i As Integer

9. Valitse Userform vasen avattavasta luettelosta. Valitse alusta aivan avattavasta luettelosta.

10. Lisää seuraavat rivit koodi:

Private Sub UserForm_Initialize()

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

OptionButton3.Value = True

End Sub

Selitys: ensimmäisestä luetteloruudusta täytetään ja kolmas vaihtoehto on asetettu oletukseksi.

Olemme luoneet ensimmäinen osa Userform.Vaikka se näyttää siisti, mitään ei tapahdu vielä, kun napsautat komentopainikkeet tai muut säätimet.

11. Kaksoisnapsauta Project Explorerissa UserForm1-ohjelmaa.

12. Kahdentaa click model after Kartuttaa napittaa.

13. Lisää seuraavat koodiluokat:

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

Selitys: Excel VBA silmukoita kautta ensimmäisestä luetteloruudusta (luettelosta indeksinumeron 0 ensimmäisen kohteen kohdalle) ja jos valittu, lisää nimikkeen toisen luetteloruudun.

14. Tuplaklikkaa Poista-painiketta.

15. Lisää seuraavat koodiluokat:

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

Selitys: Excel VBA silmukoita kautta toisen luetteloruudun ja jos valittu, poistaa kohteen.Laskuri muuttuja pitää jäljittää-lta joukko irrotetut osat.

16. Tuplaklikkaa ensimmäinen valintanappi.

17. Lisää seuraavat rivit koodi:

Private Sub OptionButton1_Click()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

End Sub

18. Tuplaklikkaa toinen valintanappi.

19. Lisätään seuraava koodi rivit:

Private Sub OptionButton2_Click()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

End Sub

20. Tuplaklikkaa kolmas vaihtoehto.

21. Lisää seuraavat rivit koodi:

Private Sub OptionButton3_Click()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

End Sub

Selitys: ”valitse tyypiksi” voidaan valita klikkaamalla valintanapit.Aiemmin osoittanut Userform kuva antaa kunkin asetuksen kuvaus.Eikä tämä asetus suorituksen, voit määrittää tämän asetuksen suunnittelun aikana.Tämän tavoitteen saavuttamiseksi hiiren oikealla klikkaa luetteloruutu ja valitse sitten Ominaisuudet.MultiSelect-ominaisuuden arvoksi 0 - fmMultiSelectSingle, 1 - fmMultiSelectMulti tai 2 - fmMultiSelectExtented.

22. Tuplaklikkaa ensimmäisenä-valintaruutu.

23. Lisää seuraavat rivit koodi:

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

Selitys: valitsemalla valintaruutu, kaikki kohteet ensimmäisestä luetteloruudusta voidaan valittu / valitsematta.

24. Tuplaklikkaa toisen valintaruutu Lisää sama koodi.Vain korvata CheckBox1 CheckBox2 ja ListBox1 ListBox2.

Lue myös: