Excel VBA Multicolumn Combo Box - Eenvoudige Excel-macro's

Inhoudsopgave

Hieronder zullen we kijken naar een programma in Excel VBA waarmee een gebruikersformulier wordt gemaakt dat een . bevat combobox met meerdere kolommen.

Het gebruikersformulier dat we gaan maken ziet er als volgt uit:

Voer de volgende stappen uit om dit Userform aan te maken.

1. Open de Visual Basic-editor. Als de Projectverkenner niet zichtbaar is, klikt u op Beeld, Projectverkenner.

2. Klik op Invoegen, Gebruikersformulier. Als de Toolbox niet automatisch verschijnt, klikt u op View, Toolbox. Uw scherm moet worden ingesteld zoals hieronder.

3. Voeg het label, de keuzelijst en de opdrachtknoppen toe. Zodra dit is voltooid, moet het resultaat consistent zijn met de afbeelding van het eerder getoonde gebruikersformulier. Maak bijvoorbeeld een combobox-besturingselement door op ComboBox te klikken in de Toolbox. Vervolgens kunt u een keuzelijst met invoervak ​​op het gebruikersformulier slepen.

4. U kunt de namen en de bijschriften van de bedieningselementen wijzigen. Namen worden gebruikt in de Excel VBA-code. Bijschriften zijn de bijschriften die op uw scherm verschijnen. Het is een goede gewoonte om de namen van de besturingselementen te wijzigen, maar dat is hier niet nodig omdat we in dit voorbeeld maar een paar besturingselementen hebben. Om het bijschrift van het gebruikersformulier, label en opdrachtknoppen te wijzigen, klikt u op Beeld, Eigenschappenvenster en klikt u op elk besturingselement.

5. Om het gebruikersformulier weer te geven, plaatst u een opdrachtknop op uw werkblad en voegt u de volgende coderegel toe:

Privé Sub CommandButton1_Click()
UserForm1.Toon
Einde sub

We gaan nu de Sub UserForm_Initialize maken. Wanneer je de Show methode voor het Userform gebruikt, wordt deze sub automatisch uitgevoerd.

6. Open de Visual Basic-editor.

7. Klik in de Projectverkenner met de rechtermuisknop op UserForm1 en klik vervolgens op View Code.

8. Kies Gebruikersformulier in de linker vervolgkeuzelijst. Kies Initialiseren in de rechter vervolgkeuzelijst.

9. Voeg de volgende coderegels toe:

Private Sub UserForm_Initialize()
ComboBox1.ColumnCount = 2
Dim films (1 tot 5, 1 tot 2) als string
Dim i als geheel getal, j als geheel getal
Films (1, 1) = "Lord of the Rings"
Films(2, 1) = "Snelheid"
Films (3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"
Films(1, 2) = "Avontuur"
Films(2, 2) = "Actie"
Films (3, 2) = "Scifi"
Films(4, 2) = "Misdaad"
Films(5, 2) = "Drama"
ComboBox1.List = Films
Einde sub

Uitleg: De eerste coderegel stelt het aantal kolommen van de combobox in op 2. In plaats van het aantal kolommen tijdens runtime in te stellen, kunt u deze instelling ook tijdens het ontwerpen configureren. Om dit te bereiken, klikt u met de rechtermuisknop op de keuzelijst met invoervak, klikt u op Eigenschappen en stelt u de eigenschap ColumnCount in op 2. Vervolgens declareren en initialiseren we een tweedimensionale array. De laatste coderegel wijst de array toe aan de combobox.

We hebben nu het eerste deel van het Userform gemaakt. Hoewel het er al netjes uitziet, gebeurt er nog niets als we op de opdrachtknoppen op het gebruikersformulier klikken.

10. Dubbelklik in de Projectverkenner op UserForm1.

11. Dubbelklik op de knop OK.

12. Voeg de volgende coderegels toe:

Privé Sub CommandButton1_Click()
Mij ​​uitladen
MsgBox "U hebt geselecteerd" & ComboBox1.Value
Bij fout Hervatten volgende
MsgBox "Je houdt van " & ComboBox1.Column(1) & " films"
Einde sub

Opmerking: deze coderegels sluiten het Excel VBA-gebruikersformulier en geven het geselecteerde item en genre weer. De instructie 'On Error Resume Next' negeert de fout wanneer de gebruiker zijn/haar eigen film invult (in dit geval is er geen genre beschikbaar).

13. Dubbelklik op de knop Annuleren.

14. Voeg de volgende coderegel toe:

Privé Sub CommandButton2_Click()
Mij ​​uitladen
Einde sub

Resultaat wanneer u Snelheid selecteert en op OK klikt.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave