Excel VBA kombinationsboks med flere kolonner - nemme Excel -makroer

Indholdsfortegnelse

Nedenfor ser vi på et program i Excel VBA som opretter en brugerform, der indeholder en kombinationsboks med flere kolonner.

Brugerformen, vi skal oprette, ser således ud:

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 etiketten, kombinationsboksen og kommandoknapperne. 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, etiketten og kommandoknapperne, 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 ()
ComboBox1.ColumnCount = 2
Dæmp film (1 til 5, 1 til 2) som streng
Dim i As Integer, j As Integer
Films (1, 1) = "Ringenes Herre"
Films (2, 1) = "Hastighed"
Films (3, 1) = "Star Wars"
Films (4, 1) = "The Godfather"
Films (5, 1) = "Pulp Fiction"
Films (1, 2) = "Eventyr"
Films (2, 2) = "Action"
Film (3, 2) = "Sci-Fi"
Films (4, 2) = "Kriminalitet"
Films (5, 2) = "Drama"
ComboBox1.List = Film
Afslut Sub

Forklaring: Den første kodelinje sætter antallet af kolonner i kombinationsboksen til 2. I stedet for at angive antallet af kolonner ved runtime, kan du også konfigurere denne indstilling på designtidspunktet. For at opnå dette skal du højreklikke på kombinationsboksen, klikke på Egenskaber og indstille egenskaben ColumnCount til 2. Derefter erklærer og initialiserer vi et todimensionalt array. Den sidste kode linje tildeler matrixen til kombinationsboksen.

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 klikker på kommando -knapperne på brugerformularen.

10. Dobbeltklik på UserForm1 i Project Explorer.

11. Dobbeltklik på knappen OK.

12. Tilføj følgende kodelinjer:

Privat underkommandoButton1_Click ()
Aflad mig
MsgBox "Du har valgt" & ComboBox1.Værdi
Ved fejl Genoptag næste
MsgBox "Du kan lide" & ComboBox1.Column (1) & "film"
Afslut Sub

Bemærk: Disse kodelinjer lukker Excel VBA -brugerformularen og viser det valgte element og genre. Udtalelsen 'On Error Resume Next' ignorerer fejlen, når brugeren udfylder sin egen film (i dette tilfælde er der ingen genre tilgængelig).

13. Dobbeltklik på knappen Annuller.

14. Tilføj følgende kodelinje:

Privat underkommandoButton2_Click ()
Aflad mig
Afslut Sub

Resultat, når du vælger Hastighed og klikker på OK.

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

wave wave wave wave wave