Excel VBA Multicolumn Combo Box - Enkla Excel -makron

Innehållsförteckning

Nedan kommer vi att titta på ett program i Excel VBA som skapar en användarform som innehåller en kombinationslåda med flera kolumner.

Användarformen vi ska skapa ser ut så här:

För att skapa denna användarform, utför följande steg.

1. Öppna Visual Basic Editor. Om Project Explorer inte syns, klicka på View, Project Explorer.

2. Klicka på Infoga, användarform. Om Verktygslådan inte visas automatiskt klickar du på Visa, Verktygslåda. Din skärm ska konfigureras enligt nedan.

3. Lägg till etiketten, kombinationsrutan och kommandoknapparna. När detta har slutförts bör resultatet överensstämma med bilden av användarformen som visades tidigare. Skapa till exempel en kombinationsruta genom att klicka på ComboBox från verktygslådan. Därefter kan du dra en kombinationsruta på användarformuläret.

4. Du kan ändra namn och bildtexter på kontrollerna. Namn används i Excel VBA -koden. Bildtexter är de som visas på skärmen. Det är bra att ändra namnen på kontrollerna, men det är inte nödvändigt här eftersom vi bara har några få kontroller i det här exemplet. För att ändra bildtexten för användarform, etikett och kommandoknappar, klicka på Visa, Egenskapsfönster och klicka på varje kontroll.

5. För att visa användarformuläret, placera en kommandoknapp på ditt kalkylblad och lägg till följande kodrad:

Privat underkommandoButton1_Click ()
UserForm1.Show
Avsluta Sub

Vi ska nu skapa Sub UserForm_Initialize. När du använder metoden Visa för användarformuläret körs denna sub automatiskt.

6. Öppna Visual Basic Editor.

7. I Project Explorer, högerklicka på UserForm1 och klicka sedan på Visa kod.

8. Välj Userform från den vänstra listrutan. Välj Initiera från den högra listrutan.

9. Lägg till följande kodrader:

Private Sub UserForm_Initialize ()
ComboBox1.ColumnCount = 2
Dimma filmer (1 till 5, 1 till 2) som sträng
Dim i As Integer, j As Integer
Films (1, 1) = "Sagan om ringen"
Filmer (2, 1) = "Hastighet"
Films (3, 1) = "Star Wars"
Films (4, 1) = "Gudfadern"
Films (5, 1) = "Pulp Fiction"
Films (1, 2) = "Äventyr"
Films (2, 2) = "Action"
Filmer (3, 2) = "Sci-Fi"
Films (4, 2) = "Brott"
Films (5, 2) = "Drama"
ComboBox1.List = Filmer
Avsluta Sub

Förklaring: Den första kodraden anger antalet kolumner i kombinationsrutan till 2. Istället för att ställa in antalet kolumner vid körning kan du också konfigurera den här inställningen vid designtiden. För att uppnå detta högerklickar du på kombinationsrutans kontroll, klickar på Egenskaper och anger egenskapen ColumnCount till 2. Därefter deklarerar och initierar vi en tvådimensionell matris. Den sista kodraden tilldelar matrisen till kombinationsrutan.

Vi har nu skapat den första delen av Userform. Även om det ser snyggt ut, kommer inget att hända ännu när vi klickar på kommandoknapparna på användarformuläret.

10. Dubbelklicka på UserForm1 i Project Explorer.

11. Dubbelklicka på OK -knappen.

12. Lägg till följande kodrader:

Privat underkommandoButton1_Click ()
Ladda ur mig
MsgBox "Du har valt" & ComboBox1.Value
Vid fel Återuppta nästa
MsgBox "You like" & ComboBox1.Column (1) & "films"
Avsluta Sub

Obs! Dessa kodrader stänger Excel VBA -användarformuläret och visar det valda objektet och genren. Påståendet "Vid fel Resume Next" ignorerar felet när användaren fyller i sin egen film (i det här fallet finns det ingen genre tillgänglig).

13. Dubbelklicka på knappen Avbryt.

14. Lägg till följande kodrad:

Privat underkommandoButton2_Click ()
Ladda ur mig
Avsluta Sub

Resultat när du väljer Hastighet och klickar på OK.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave