Kombinasjonsboks med flere kolonner i Excel VBA - Enkle Excel -makroer

Innholdsfortegnelse

Nedenfor ser vi på et program i Excel VBA som oppretter en brukerform som inneholder en kombinasjonsboks med flere kolonner.

Brukerformen vi skal lage ser slik ut:

For å opprette dette brukerskjemaet, utfør følgende trinn.

1. Åpne Visual Basic Editor. Hvis Project Explorer ikke er synlig, klikker du View, Project Explorer.

2. Klikk Sett inn, Brukerform. Hvis verktøykassen ikke vises automatisk, klikker du på Vis, Verktøykasse. Skjermen din skal konfigureres som nedenfor.

3. Legg til etiketten, kombinasjonsboksen og kommandoknappene. Når dette er fullført, bør resultatet være i samsvar med bildet av brukerskjemaet som ble vist tidligere. For eksempel kan du opprette en kombinasjonsboks kontroll ved å klikke på ComboBox fra verktøykassen. Deretter kan du dra en kombinasjonsboks på brukerskjemaet.

4. Du kan endre navnene og bildeteksten på kontrollene. Navn brukes i Excel VBA -koden. Bildetekster er de som vises på skjermen. Det er god praksis å endre navnene på kontrollene, men det er ikke nødvendig her fordi vi bare har noen få kontroller i dette eksemplet. Hvis du vil endre bildeteksten til brukerform, etikett og kommandoknapper, klikker du på Vis, Egenskapsvindu og klikker på hver kontroll.

5. For å vise brukerskjemaet, plasser en kommandoknapp i regnearket og legg til følgende kodelinje:

Private Sub CommandButton1_Click ()
UserForm1.Show
Slutt Sub

Vi skal nå lage Sub UserForm_Initialize. Når du bruker Vis -metoden for brukerskjemaet, blir denne suben automatisk utført.

6. Åpne Visual Basic Editor.

7. I Project Explorer, høyreklikk på UserForm1 og klikk deretter Vis kode.

8. Velg Userform fra rullegardinlisten til venstre. Velg Initialiser fra rullegardinlisten til høyre.

9. Legg til følgende kodelinjer:

Private Sub UserForm_Initialize ()
ComboBox1.ColumnCount = 2
Demp filmer (1 til 5, 1 til 2) som streng
Dim i As Integer, j As Integer
Films (1, 1) = "Ringenes Herre"
Films (2, 1) = "Hastighet"
Films (3, 1) = "Star Wars"
Films (4, 1) = "The Godfather"
Films (5, 1) = "Pulp Fiction"
Films (1, 2) = "Eventyr"
Films (2, 2) = "Action"
Films (3, 2) = "Sci-Fi"
Films (4, 2) = "Kriminalitet"
Films (5, 2) = "Drama"
ComboBox1.List = Filmer
Slutt Sub

Forklaring: Den første kodelinjen setter antall kolonner i kombinasjonsboksen til 2. I stedet for å angi antall kolonner ved kjøretid, kan du også konfigurere denne innstillingen på designtidspunktet. For å oppnå dette, høyreklikker du på kombinasjonsbokskontrollen, klikker på Egenskaper og setter ColumnCount-egenskapen til 2. Deretter deklarerer og initialiserer vi en todimensjonal matrise. Den siste kodelinjen tilordner matrisen til kombinasjonsboksen.

Vi har nå laget den første delen av Userform. Selv om det ser pent ut allerede, vil ingenting skje ennå når vi klikker på kommandoknappene på brukerskjemaet.

10. Dobbeltklikk på UserForm1 i Project Explorer.

11. Dobbeltklikk på OK -knappen.

12. Legg til følgende kodelinjer:

Private Sub CommandButton1_Click ()
Last ut meg
MsgBox "Du valgte" & ComboBox1.Value
Ved feil Fortsett neste
MsgBox "Du liker" og ComboBox1.Column (1) og "filmer"
Slutt Sub

Merk: Disse kodelinjene lukker Excel VBA -brukerformen og viser det valgte elementet og sjangeren. "On Error Resume Next" setningen ignorerer feilen når brukeren fyller ut sin egen film (i dette tilfellet er det ingen sjanger tilgjengelig).

13. Dobbeltklikk på Avbryt -knappen.

14. Legg til følgende kodelinje:

Private Sub CommandButton2_Click ()
Last ut meg
Slutt Sub

Resultat når du velger Hastighet og klikker OK.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave