/ / Multiple List Box izvēles programmā Excel VBA

Vairāku sarakstu lodziņu atlases programmā Excel VBA

The MultiSelect īpašums in Excel VBA ļauj lietotājam sarakstā atlasīt vairākus vienumus. Lietotāja forma, kuru mēs veidosim, izskatās šādi:

Vairāku sarakstu lodziņu atlases programmā Excel VBA

Lai izveidotu šo Userform, izpildiet šādas darbības.

1. Atveriet Visual Basic Editor. Ja Project Explorer nav redzams, noklikšķiniet uz Skatīt, Project Explorer.

2. Noklikšķiniet uz Ielikt, Lietotāja forma. Ja rīkjosla neparādās automātiski, noklikšķiniet uz Skatīt, rīkjoslu. Jūsu ekrāns ir jāiestata tā, kā parādīts zemāk.

Userform ekrāna iestatīšana programmā Excel VBA

3 Pievienojiet sarakstu lodziņus (pirmie pa kreisi, otro labajā pusē), komandu pogas, atzīmējiet lodziņus (pirmais pa kreisi, otrais labajā pusē), rāmja un opciju pogas (pirmā augšdaļā, otrajā zem pirmā , un tā tālāk). Kad tas ir pabeigts, rezultātam jāatbilst iepriekš redzamā lietotāja formas attēlam. Piemēram, izveidojiet saraksta lodziņa vadību, noklikšķinot uz saraksta lodziņa no rīkjoslas. Tālāk jūs varat vilkt saraksta lodziņu Userform. Kad ieradīsieties uz rāmja "Atlasīt veidu", atcerieties, lai vispirms izdarītu šo rāmi, pirms ievietojat trīs opciju pogas.

4 Jūs varat mainīt vadības ierīču nosaukumus un parakstus. Vārdi tiek izmantoti Excel VBA kodā. Paraksti ir tie, kas tiek parādīti ekrānā. Laba prakse ir mainīt kontroles nosaukumus, taču šeit tas nav nepieciešams, jo šajā piemērā ir tikai dažas kontroles. Lai mainītu Userform virsrakstu, komandu pogas, izvēles rūtiņas, rāmja un opciju pogas, noklikšķiniet uz Skatīt, rekvizītu loga un noklikšķiniet uz katras vadības pogas.

5. Lai parādītu Userform, ievietojiet komandas pogu savā darblapā un pievienojiet šādu koda rindiņu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Tagad mēs izveidosim Sub UserForm_Initialize. Ja izmantojat Userform formātu Show method, šī apakšdaļa tiks automātiski izpildīta.

6. Atveriet Visual Basic Editor.

7. Projekta programmā labo pogu noklikšķiniet uz UserForm1 un pēc tam noklikšķiniet uz Skatīt kodu.

8. Vispirms deklarējiet mainīgā lieluma i vērtību Integer. Paziņojiet mainīgo lielumu sadaļā Vispārējās deklarācijas (koda augšdaļā). Tādā veidā jums vienreiz ir jādeklarē mainīgais, un jūs varat tos izmantot vairākās apakšsadaļās.

Dim i As Integer

9. Izvēlieties Userform no kreisā nolaižamā saraksta. Izvēlieties Inicializēt labajā nolaižamajā sarakstā.

10. Pievienojiet šādas koda rindiņas:

Private Sub UserForm_Initialize()

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

OptionButton3.Value = True

End Sub

Paskaidrojums: tiks aizpildīts pirmais saraksta lodziņš un trešās opcijas poga ir iestatīta kā noklusējums.

Tagad mēs esam izveidojuši lietotāja formas pirmo daļu. Lai gan tas izskatās pievilcīgs jau, nekas nenotiks, kad mēs noklikšķināsim uz komandu pogām vai citām vadības pogām.

11. Projekta Explorer divreiz noklikšķiniet uz UserForm1.

12. Divreiz noklikšķiniet uz pogas Pievienot.

13. Pievienojiet šādas koda līnijas:

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

Paskaidrojums: Excel VBA cilpas caur pirmo saraksta lodziņu (saraksts saraksta pirmajam objektam ir nulles indeksa numurs (0)), un, ja tas ir izvēlēts, objektu pievieno otrajam saraksta lodziņam.

14. Divreiz noklikšķiniet uz pogas Noņemt.

15. Pievienojiet šādas koda rindiņas:

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

Paskaidrojums: Excel VBA cilpas caur otro saraksta lodziņu un, ja tas tiek izvēlēts, objekts tiek noņemts. Atlikušais mainīgais seko noņemto vienumu skaitam.

16. Dubultklikšķi uz pirmās opcijas pogas.

17. Pievienojiet šādas koda rindiņas:

Private Sub OptionButton1_Click()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

End Sub

18. Dubultklikšķi uz otrās opcijas pogas.

19. Pievienojiet šādas koda līnijas:

Private Sub OptionButton2_Click()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

End Sub

20. Divreiz uzklikšķiniet uz trešās opcijas pogas.

21. Pievienojiet šādas koda rindiņas:

Private Sub OptionButton3_Click()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

End Sub

Paskaidrojums: iestatījumu "Atlasīt veidu" var izvēlēties, noklikšķinot uz opcijas pogām. Iepriekš attēlotā lietotāja formas attēls sniedz katra iestatījuma aprakstu. Tā vietā, lai konfigurētu šo iestatījumu laikā runtime, jūs varat arī konfigurēt šo iestatījumu projektēšanas laikā. Lai to panāktu, peles labo pogu noklikšķiniet uz saraksta lodziņa un pēc tam noklikšķiniet uz Properties (Rekvizīti). Iestatīt MultiSelect īpašību 0 - fmMultiSelectSingle, 1 - fmMultiSelectMulti vai 2 - fmMultiSelectExtented.

22. Divreiz noklikšķiniet uz pirmā izvēles rūtiņas.

23. Pievienojiet šādas koda rindiņas:

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

Paskaidrojums: atzīmējot pirmo izvēles rūtiņu, visus pirmā saraksta lodziņa priekšmetus var atlasīt / noņemt.

24. Divreiz noklikšķiniet uz otrā izvēles rūtiņa, lai pievienotu tās pašas koda rindiņas. Tikai nomainiet CheckBox1 ar CheckBox2 un ListBox1 ar ListBox2.

Lasīt arī: