Vi vet hvordan vi lager en nedtrekksmeny i et regneark ved hjelp av datavalidering. Men hvordan lager vi en fallende kombi -boks -rullegardin på VBA -brukerform. Dette er et av de grunnleggende behovene.
I denne artikkelen lærer vi hvordan du lager en avhengig komboboks i VBA.
Logikk for avhengig Combobox i VBA
For å lage en avhengig kombiboks i VBA må vi initialisere komboboksen for hendelsen av kildeelementet. For eksempel, hvis en kombiboks er avhengig av en radioknappgruppe, bør koden for å laste avhengig kombiboks kjøre umiddelbart etter at noen har valgt en alternativknapp. Eller hvis en kombinasjonsboks er avhengig av en annen kombinasjonsboks, bør avhengig av kombinasjonsboksen lastes inn hver gang verdien i kombinasjonsboksen endres.
Nok med teorien. La oss hoppe inn i et eksempel for å se hvordan det fungerer.
ComboBox Avhengig av en annen Combobox
Lag to combobox. Først bør en liste opp de få navnene på land. Den andre bør liste navnene på statene i det valgte landet. Hvis brukeren endrer landet i den første kombokassen, bør listen over den andre kombinasjonsboksen endres.
La oss lage et skjema som har to kombinasjonsbokser med etiketter land og stater og en kommandoknapp for å sende innspill.
Den første kombinasjonsboksen bør angi navn på land, og den er ikke avhengig av noen verdi. Så vi vil laste det inn i form_intialize -hendelsen, slik vi gjør for grunnleggende initialisering av combobox.
Dobbeltklikk på brukerskjemaet. Det vil åpne kodeområdet i UserForm Object. Velg nå brukerform fra venstre nedtrekksmeny. Velg deretter initialiser fra høyre nedtrekksmeny.
Et tomt undernavn UserForm_Initialize () blir satt inn. Alt som er skrevet i denne suben vil bli utført før brukerskjemaet dukker opp.
Så vi skriver initialiseringskoden for combobox her.
Private Sub UserForm_Initialize () countries = Array ("India", "Nepal", "Bhutan", "Shree Lanka") UserForm1.ComboBox1.List = states End Sub
Vi har vår første komboboks initialisert. Når du laster inn brukerskjemaet, vil den første boksen være klar med navnet på land.
Nå for å laste inn den andre kombiboksen, må vi se på hvilken verdi som er valgt i den første kombinasjonsboksen og kjøre koden hver gang combobox1 endrer verdiene. For dette bruker vi hendelsen Combobox_AfterUpdate.
Velg komboboks1 fra venstre rullegardinmeny. Velg AfterUpdate fra rullegardinmenyen til høyre. Vi kan også bruke Endre -hendelsen, men vi holder oss til AfterUpdate i artikkelen.
Skriv nå koden nedenfor:
Private Sub ComboBox1_AfterUpdate () Velg 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 brukt et utvalg saksuttalelse. Select case -utsagnet er bra når vi vil se hvilken verdi som er valgt blant mange verdier. Jeg har forklart det her i detalj.
For å lagre verdien som er lagt inn av brukeren, bruk send -knappen. Skriv koden nedenfor i kommandoknappen Send for å lagre landet og staten valgt av brukeren i regnearket.
Private Sub CommandButton1_Click () country = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets ("sheet1"). Range ("G1") = country ThisWorkbook.Worksheets ("sheet1"). Range ("H1") = State Unload Me End Sub
For å vise brukerskjemaet, sett inn en knapp på regnearket og skriv koden nedenfor. Eller du kan bruke en enkel modul for å vise brukerformen.
Sub load_userform () UserForm1.Show End Sub
Kjør nå load_userform -kode.
Hvordan virker det?
Når du kjører suben som har kode userform.show, kjører VBA userform_initialize hendelser umiddelbart etter at den kjører kommandoen userform.show. I hendelsen userform_intialize har vi initialisert den første komboboksen som har en liste over land. Etterpå vises skjemaet for brukeren.
Når brukeren nå velger en verdi fra den første kombiboksen, kjører hendelsen combobox1_AfterUpdate -hendelsen. Denne hendelsen inneholder koden for å sjekke hvilken verdi som er valgt av brukeren i combobox1, og basert på den verdien, setter den tilstandsarrayen og initialiserer combobox2 -verdiene med States array.
Så ja, folkens, dette er hvordan du oppretter en cascading combobox i VBA -brukerform. Jeg håper jeg var forklarende nok og artikkelen tjente sin hensikt. Hvis du er i tvil om denne artikkelen eller et VBA -emne, kan du spørre meg i kommentarfeltet nedenfor.
Komme i gang med Excel VBA UserForms| Jeg vil forklare hvordan du lager et skjema i excel, hvordan du bruker VBA -verktøykasse, hvordan du håndterer brukerinnganger og til slutt hvordan du lagrer brukerinngangene. Vi vil gå gjennom disse emnene ved å bruke ett eksempel og en trinnvis veiledning.
VBA -variabler i Excel| VBA står for Visual Basic for Applications. Det er et programmeringsspråk fra Microsoft. Den brukes med Microsoft Office-applikasjoner som MSExcel, MS-Word og MS-Access, mens VBA-variabler er spesifikke søkeord.
Excel VBA variabelt omfang| På alle programmeringsspråk har vi variabel tilgangsspesifikatorer som definerer hvorfra en definert variabel kan nås. Excel VBA er ingen unntak. VBA har også omfangsspesifikatorer.
ByRef og ByVal -argumenter | Når et argument sendes som et ByRef -argument til en annen sub eller funksjon, sendes referansen til den faktiske variabelen. Eventuelle endringer som gjøres i kopien av variabelen, gjenspeiles i det opprinnelige argumentet.
Slett ark uten bekreftelsesforespørsler ved hjelp av VBA i Microsoft Excel | Siden du sletter ark med VBA, vet du hva du gjør. Du vil fortelle Excel om ikke å vise denne advarselen og slette det jævla arket.
Legg til og lagre ny arbeidsbok ved hjelp av VBA i Microsoft Excel 2016| I denne koden opprettet vi først en referanse til et arbeidsbokobjekt. Og så initialiserte vi det med et nytt arbeidsbokobjekt. Fordelen med denne tilnærmingen er at du enkelt kan utføre operasjoner på denne nye arbeidsboken. Som å lagre, lukke, slette osv
Vis en melding på Excel VBA -statuslinjen| Statuslinjen i excel kan brukes som en kodemonitor. Når VBA -koden din er lang og du gjør flere oppgaver med VBA, deaktiverer du ofte skjermoppdateringen slik at du ikke ser at skjermen flimrer.
Slå av advarselsmeldinger ved hjelp av VBA i Microsoft Excel 2016| Denne koden deaktiverer ikke bare VBA -varsler, men øker også tidens effektivitet av koden. La oss se hvordan.
Populære artikler:
50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene får deg til å jobbe enda raskere med Excel.
VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.
COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke å filtrere dataene dine for å telle spesifikke verdier. Countif -funksjonen er avgjørende for å forberede dashbordet.
Slik bruker du SUMIF -funksjon i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.