/ / VBA Multicolumn Combo Box

Excel VBA Multicolumn Combo Box

Nižšie sa pozrieme na program v sekcii Excel VBA ktorý vytvorí Userform, ktorý obsahuje a Viacbodové pole so zoznamom.

Forma User, ktorú chceme vytvoriť, vyzerá takto:

Multicolumn Combo Box v programe Excel VBA

Ak chcete vytvoriť tento Userform, vykonajte nasledujúce kroky.

1. Otvorte Editor jazyka. Ak nástroj Project Explorer nie je viditeľný, kliknite na položku Zobraziť, Project Explorer.

2. Kliknite na Insert, Userform. Ak sa panel nástrojov nezobrazí automaticky, kliknite na položku Zobraziť, panel s nástrojmi. Obrazovka by mala byť nastavená tak, ako je uvedené nižšie.

Nastavenie obrazovky používateľa v programe Excel VBA

3. Pridajte štítok, pole so zoznamom a príkazové tlačidlá. Po dokončení tohto výsledku by mal byť výsledok v súlade s obrázkom užívateľa, ktorý je zobrazený skôr. Napríklad vytvorte ovládací prvok poľa kliknutím na ComboBox z panelu nástrojov. Potom môžete pretiahnuť pole so zoznamom na Userform.

4. Môžete zmeniť názvy a popisy ovládacích prvkov. Názvy sa používajú v kóde programu Excel VBA. Titulky sú tie, ktoré sa zobrazujú na vašej obrazovke. Správna prax je zmeniť mená ovládacích prvkov, nie je to však potrebné, pretože v tomto príklade máme len niekoľko kontrol. Ak chcete zmeniť popis tlačidiel Userform, label a command, kliknite na View, Properties Properties a kliknite na každý ovládací prvok.

5. Ak chcete zobraziť Userform, umiestnite do pracovného hárka príkazové tlačidlo a pridajte nasledujúci riadok kódu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Teraz vytvoríme Sub UserForm_Initialize. Ak použijete metódu Show for Userform, táto podstata sa automaticky vykoná.

6. Otvorte Editor jazyka.

7. V programe Project Explorer kliknite pravým tlačidlom na UserForm1 a potom kliknite na View Code.

8. V ľavom rozbaľovacom zozname vyberte položku Userform. V pravom rozbaľovacom zozname vyberte možnosť Inicializovať.

9. Pridajte nasledujúce riadky kódu:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

vysvetlenie: Prvý riadok kódu nastavuje počet stĺpcov rozbaľovacieho poľa na hodnotu 2. Namiesto nastavenia počtu stĺpcov pri behu, môžete toto nastavenie konfigurovať aj v čase návrhu. Aby ste to dosiahli, kliknite pravým tlačidlom myši na ovládací prvok poľa, kliknite na položku Vlastnosti a nastavte vlastnosť ColumnCount na hodnotu 2. Ďalej deklarujeme a inicializujeme dvojrozmerné pole. Posledný riadok kódu priradí poľa do poľa so zoznamom.

Teraz sme vytvorili prvú časť Userform. Aj keď to vyzerá dobre, nič sa nestane, keď klikneme na tlačidlá príkazu na Userform.

10. V programe Project Explorer dvakrát kliknite na UserForm1.

11. Dvakrát kliknite na tlačidlo OK.

12. Pridajte nasledujúce riadky kódu:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Poznámka: tieto riadky kódu uzatvárajú užívateľskú formu Excel VBA a zobrazujú vybranú položku a žánru. Príkaz "On Error Resume Next" ignoruje chybu, keď používateľ vyplní vlastný film (v tomto prípade nie je dostupný žáner).

13. Dvakrát kliknite na tlačidlo Zrušiť.

14. Pridajte nasledujúci riadok kódu:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Výsledok, keď vyberiete možnosť Rýchlosť a kliknite na tlačidlo OK.

Výsledok viacerých riadkov

Výsledok viacerých riadkov

Tiež si prečítajte: