Vi ved, hvordan vi opretter en rullende rullemenu på et regneark ved hjælp af datavalidering. Men hvordan opretter vi en faldende kombinationsboks -dropdown på VBA -brugerform. Dette er et af de grundlæggende behov.
I denne artikel lærer vi, hvordan du opretter en afhængig komboboks i VBA.
Logik for afhængig Combobox i VBA
For at oprette en afhængig komboboks i VBA skal vi initialisere komboboksen i tilfælde af kildeelementet. For eksempel, hvis en kombiboks er afhængig af en gruppeknapgruppe, skal koden til indlæsning af afhængig komboboks køre umiddelbart efter, at nogen har valgt en alternativknap. Eller hvis en komboboks er afhængig af en anden kombokasse, så afhængig af kombokassen skal indlæses hver gang værdien i kombinationsboksen ændres.
Nok med teorien. Lad os springe ind i et eksempel for at se, hvordan det fungerer.
ComboBox Afhængig af en anden Combobox
Opret to kombinationsbokse. Først bør man angive de få navne på lande. Den anden bør angive navnene på tilstande i det valgte land. Hvis brugeren ændrer landet i i første komboboks, bør listen over anden komboboks ændres.
Lad os oprette en formular, der har to kombinationsbokse med etiketter lande og stater og en kommandoknap til at indsende input.
Den første komboboks bør angive navne på lande, og den afhænger ikke af nogen værdi. Så vi indlæser det i form_intialize -hændelse, som vi gør for grundlæggende initialisering af komboboks.
Dobbeltklik på brugerformularen. Det åbner kodningsområdet i UserForm Object. Vælg nu brugerform fra den venstre rullemenu. Vælg derefter initialiser fra højre rullemenu.
Et tomt undernavn UserForm_Initialize () indsættes. Alt, der er skrevet i denne sub, vil blive eksekveret, før brugerformularen vises.
Så vi skriver initialiseringskoden til combobox her.
Private Sub UserForm_Initialize () lande = Array ("Indien", "Nepal", "Bhutan", "Shree Lanka") UserForm1.ComboBox1.List = stater Afslut Sub
Vi har vores første komboboks initialiseret. Hver gang du indlæser brugerformularen, er den første combox klar med navnet på lande.
Nu for at indlæse den anden komboboks skal vi se på, hvilken værdi der er valgt i den første komboboks1 og køre koden hver gang combobox1 ændrer dens værdier. Til dette vil vi bruge Combobox_AfterUpdate -begivenheden.
Vælg komboboks1 i venstre rullemenu. Vælg AfterUpdate i højre rullemenu. Vi kan også bruge ændringsbegivenheden, men vi holder os til AfterUpdate i artiklen.
Skriv nu nedenstående kode:
Private Sub ComboBox1_AfterUpdate () Vælg Case ComboBox1.Value Case "India": states = Array ("Delhi", "UP", "UK", "Gujrat", "Kashmir") Case "Nepal": states = Array ("Arun Kshetra "," Janakpur Kshetra "," Kathmandu Kshetra ", _" Gandak Kshetra "," Kapilavastu Kshetra ") Case" Bhutan ": states = Array (" Bumthang "," Trongsa "," Punakha "," Thimphu "," Paro ") Case" Shree Lanka ": states = Array (" Galle "," Ratnapura "," Colombo "," Badulla "," Jaffna ") End Select ComboBox2.List = states End Sub
Her har vi brugt en udvalgt sagserklæring. Select case -udsagnet er godt, når vi vil se, hvilken værdi der vælges blandt mange værdier. Jeg har forklaret det her detaljeret.
For at gemme værdien indsat af brugeren skal du bruge knappen Send. Skriv nedenstående kode i kommandoknappen indsend for at gemme det land og den tilstand, som brugeren har valgt på regnearket.
Private Sub CommandButton1_Click () country = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets ("sheet1"). Range ("G1") = country ThisWorkbook.Worksheets ("sheet1"). Range ("H1") = State Unload Mig Slut Sub
Nu for at vise brugerformularen skal du indsætte en knap på regnearket og skrive nedenstående kode. Eller du kan bruge et simpelt modul til at vise brugerformen.
Sub load_userform () UserForm1.Show End Sub
Kør nu load_userform kode.
Hvordan virker det?
Når du kører den sub, der har kode userform.show, kører VBA userform_initialize -begivenheder umiddelbart efter, at den kører userform.show -kommandoen. I hændelsen userform_intialize har vi initialiseret den første komboboks, der har en liste over lande. Bagefter vises formularen til brugeren.
Når brugeren nu vælger en hvilken som helst værdi fra den første komboboks, kører hændelsen combobox1_AfterUpdate -hændelsen. Denne hændelse indeholder koden for at kontrollere, hvilken værdi der vælges af brugeren i combobox1 og baseret på denne værdi, indstiller den array -tilstanden og initialiserer combobox2 -værdierne med states array.
Så ja fyre, det er sådan du opretter en kaskadende komboboks i VBA -brugerform. Jeg håber, jeg var forklarende nok, og artiklen tjente sit formål. Hvis du er i tvivl om denne artikel eller et VBA -emne, så spørg mig i kommentarfeltet herunder.
Kom godt i gang med Excel VBA UserForms| Jeg vil forklare, hvordan man opretter en formular i excel, hvordan man bruger VBA -værktøjskasse, hvordan man håndterer brugerinput og endelig hvordan man gemmer brugerinput. Vi vil gennemgå disse emner ved hjælp af et eksempel og en trinvis vejledning.
VBA -variabler i Excel| VBA står for Visual Basic for Applications. Det er et programmeringssprog fra Microsoft. Det bruges med Microsoft Office-applikationer som MSExcel, MS-Word og MS-Access, hvorimod VBA-variabler er specifikke søgeord.
Excel VBA variabelt omfang| På alle programmeringssprog har vi variabeladgangsspecifikatorer, der definerer, hvorfra der kan tilgås en defineret variabel. Excel VBA er ingen undtagelse. VBA har også omfangsspecifikationer.
ByRef og ByVal argumenter | Når et argument sendes som et ByRef -argument til en anden sub eller funktion, sendes referencen til den faktiske variabel. Eventuelle ændringer, der foretages i kopien af variablen, vil afspejle sig i det originale argument.
Slet ark uden bekræftelsesmeddelelser ved hjælp af VBA i Microsoft Excel | Da du sletter ark ved hjælp af VBA, ved du, hvad du laver. Du vil gerne bede Excel om ikke at vise denne advarsel og slette det forbandede ark.
Tilføj og gem ny arbejdsmappe ved hjælp af VBA i Microsoft Excel 2016| I denne kode oprettede vi først en reference til et projektmappeobjekt. Og så initialiserede vi det med et nyt projektmappeobjekt. Fordelen ved denne tilgang er, at du nemt kan udføre operationer på denne nye projektmappe. Som at gemme, lukke, slette osv
Vis en meddelelse på Excel VBA -statuslinjen| Statuslinjen i excel kan bruges som kodeovervågning. Når din VBA -kode er lang, og du udfører flere opgaver ved hjælp af VBA, deaktiverer du ofte skærmopdateringen, så du ikke kan se, at skærmen flimrer.
Slå advarselsmeddelelser fra ved hjælp af VBA i Microsoft Excel 2016| Denne kode deaktiverer ikke kun VBA -advarsler, men øger også kodeens tidseffektivitet. Lad os se hvordan.
Populære artikler:
50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje får dig til at arbejde endnu hurtigere i Excel.
VLOOKUP -funktionen i Excel | Dette er en af de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.
COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke at filtrere dine data for at tælle bestemte værdier. Countif -funktion er afgørende for at forberede dit dashboard.
Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.