Excel VBA -afhængige kombinationsbokse - nemme Excel -makroer

Indholdsfortegnelse

Nedenfor ser vi på et program i Excel VBA som opretter en brugerform, der indeholder afhængige kombinationsbokse. Brugerformen, vi skal oprette, ser således ud:

Brugeren vælger Dyr fra en rulleliste. Som et resultat kan brugeren vælge et dyr fra en anden rulleliste.

Brugeren vælger Sport fra en rulleliste. Som et resultat kan brugeren vælge en sport fra en anden rulleliste.

For at oprette denne brugerformular skal du udføre følgende trin.

1. Åbn Visual Basic Editor. Hvis Project Explorer ikke er synlig, skal du klikke på View, Project Explorer.

2. Klik på Indsæt, brugerform. Hvis Toolbox ikke vises automatisk, skal du klikke på View, Toolbox. Din skærm skal konfigureres som nedenfor.

3. Tilføj kombinationsboksene (først til venstre, den anden til højre) og kommando -knap. Når dette er udført, skal resultatet være i overensstemmelse med billedet af brugerformularen vist tidligere. For eksempel kan du oprette en kombinationsboksstyring ved at klikke på ComboBox fra værktøjskassen. Dernæst kan du trække en kombinationsboks på brugerformularen.

4. Du kan ændre betegnelsernes navne og billedtekster. Navne bruges i Excel VBA -koden. Billedtekster er dem, der vises på din skærm. Det er god praksis at ændre navnene på kontrolelementerne, men det er ikke nødvendigt her, fordi vi kun har få kontrolelementer i dette eksempel. Hvis du vil ændre billedteksten for brugerformularen og kommandoknappen, skal du klikke på Vis, vinduet Egenskaber og klikke på hver kontrol.

5. For at vise brugerformularen skal du placere en kommandoknap på dit regneark og tilføje følgende kodelinje:

Privat underkommandoButton1_Click ()
UserForm1.Show
Afslut Sub

Vi skal nu oprette Sub UserForm_Initialize. Når du bruger metoden Vis til brugerformularen, udføres denne sub automatisk.

6. Åbn Visual Basic Editor.

7. I Project Explorer skal du højreklikke på UserForm1 og derefter klikke på Vis kode.

8. Vælg Brugerform på venstre rulleliste. Vælg Initialiser på rullelisten til højre.

9. Tilføj følgende kodelinjer:

Privat underbrugerForm_Initialize ()
Med ComboBox1
.AddItem "Dyr"
.AddItem "Sport"
.AddItem "Mad"
Afslut med
Afslut Sub

Forklaring: Disse kodelinjer fylder den første kombinationsboks.

Vi har nu oprettet den første del af brugerformularen. Selvom det allerede ser pænt ud, vil der endnu ikke ske noget, når vi vælger et element fra den første kombinationsboks.

10. Dobbeltklik på UserForm1 i Project Explorer.

11. Dobbeltklik på den første kombinationsboks.

12. Tilføj følgende kodelinjer:

Private Sub ComboBox1_Change ()
Dim indeks som heltal
index = ComboBox1.ListIndex
Kombinationsboks 2. Ryd
Vælg sagsindeks
Sag er = 0
Med ComboBox2
.AddItem "Hund"
.AddItem "Cat"
.AddItem "hest"
Afslut med
Sag er = 1
Med ComboBox2
.AddItem "Tennis"
.AddItem "Svømning"
.AddItem "Basketball"
Afslut med
Sag er = 2
Med ComboBox2
.AddItem "Pandekager"
.AddItem "Pizza"
.AddItem "kinesisk"
Afslut med
Afslut Vælg
Afslut Sub

Forklaring: Excel VBA bruger værdien af ​​det variable indeks til at teste hver efterfølgende sagserklæring for at se med hvilke elementer den anden kombinationsboks skal udfyldes. Gå gennem vores Select Case -program for at lære mere om Select Case -strukturen.

13. Dobbeltklik på knappen Import.

14. Tilføj følgende kodelinje:

Privat underkommandoButton1_Click ()
Område ("A1"). Værdi = ComboBox2.Værdi
Afslut Sub

Resultat:

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave