Me teame, kuidas andmete valideerimise abil luua töölehele kaskaadrippmenüü. Aga kuidas luua VBA kasutajavormis kaskaadne kombineeritud kasti rippmenüü. See on üks põhivajadusi.
Selles artiklis õpime, kuidas luua VBA -s sõltuv kombineeritud kast.
Loogika sõltuva kombineeritud kasti jaoks VBA -s
Sõltuva kombineeritud kasti loomiseks VBA -s peame lähtekomponendi lähtestamisel lähtestama kombineeritud kasti. Näiteks kui kombineeritud kast sõltub raadionuppude rühmast, peaks sõltuvate kastide laadimise kood käivituma kohe pärast seda, kui keegi on raadionupu valinud. Või kui kombineeritud kast sõltub mõnest teisest kastist, peaks sõltuvalt kastist laadima iga kord, kui kombineeritud kasti väärtust muudetakse.
Aitab teooriast. Hüppame näite juurde, et näha, kuidas see toimib.
ComboBox sõltuvalt teisest Comboboxist
Looge kaks kombineeritud kasti. Kõigepealt tuleks loetleda mõned riikide nimed. Teine peaks loetlema valitud riigi osariikide nimed. Kui kasutaja vahetab esimeses kastis riiki, tuleb teise kombineeritud kasti loendit muuta.
Loome vormi, millel on kaks kombineeritud kasti riikide ja osariikide siltidega ning sisendi esitamiseks käsunupp.
Esimeses kombineeritud kastis tuleks loetleda riikide nimed ja see ei sõltu ühestki väärtusest. Nii laadime selle sündmusele form_intialize nagu kombo kasti algseadistamisel.
Topeltklõpsake kasutajavormil. See avab UserForm Objecti kodeerimisala. Nüüd valige vasakpoolsest rippmenüüst userform. Seejärel valige parempoolsest rippmenüüst lähtestamine.
Sisestatakse tühi alamnimi UserForm_Initialize (). Kõik, mis selles alamkirjas on kirjutatud, täidetakse enne kasutajavormi ilmumist.
Niisiis kirjutame siin komboboksi lähtestamiskoodi.
Private Sub UserForm_Initialize () riigid = Array ("India", "Nepal", "Bhutan", "Shree Lanka") UserForm1.ComboBox1.List = osutab End Sub
Meil on esimene kombineeritud kast initsialiseeritud. Kasutajavormi laadimisel on esimene kombineeritud kast koos riikide nimedega valmis.
Teise liitkasti laadimiseks peame vaatama, milline väärtus on valitud esimeses kastis1 ja käivitama koodi iga kord, kui combobox1 oma väärtusi muudab. Selleks kasutame sündmust Combobox_AfterUpdate.
Valige vasakpoolsest rippmenüüst combobox1. Valige parempoolsest rippmenüüst AfterUpdate. Võime kasutada ka sündmust Muuda, kuid jääme artiklisse pärast värskendust.
Nüüd kirjutage allolev kood:
Private Sub ComboBox1_AfterUpdate () Valige juhtumikombinatsioon 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 ") Juhtum" Bhutan ": osariigid = Array (" Bumthang "," Trongsa "," Punakha "," Thimphu "," Paro ") Juhtum" Shree Lanka ": States = Array (" Galle "," Ratnapura "," Colombo "," Badulla "," Jaffna ") End Select ComboBox2.List = osutab End Sub
Siin oleme kasutanud valitud juhtumi avaldust. Valikjuhtumi väide on hea, kui tahame näha, milline väärtus valitakse paljude väärtuste hulgast. Ma selgitasin seda siin üksikasjalikult.
Kasutaja sisestatud väärtuse salvestamiseks kasutage nuppu Esita. Kirjutage allolev kood käsunupule Saada, et salvestada töölehele kasutaja valitud riik ja osariik.
Privaatne alamkäsk CommandButton1_Click () country = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets ("sheet1"). Vahemik ("G1") = riik ThisWorkbook.Worksheets ("sheet1"). Range ("H1") = State Unload Me End Sub
Kasutajavormi näitamiseks sisestage töölehele nupp ja kirjutage allolev kood. Või võite kasutajaliigi kuvamiseks kasutada lihtsat moodulit.
Sub load_userform () UserForm1.Show End Sub
Nüüd käivitage load_userform kood.
Kuidas see töötab?
Kui käivitate alamosa, mille kood on userform.show, käivitab VBA sündmused userform_initialize kohe pärast käsu userform.show käivitamist. Sündmusel userform_intialize oleme lähtestanud esimese kombineeritud kasti, millel on riikide loend. Seejärel kuvatakse vorm kasutajale.
Nüüd, kui kasutaja valib esimesest kombineeritud kastist mis tahes väärtuse, käivitatakse sündmus combobox1_AfterUpdate. See sündmus sisaldab koodi, mille abil saab kontrollida, millise väärtuse kasutaja on väljale combobox1 valinud, ja selle väärtuse põhjal määrab see olekumassiivi ning lähtestab combobox2 väärtused olekumassiiviga.
Nii et jah, poisid, nii saate luua VBA kasutajavormis kaskaadkombinatsiooni. Loodan, et olin piisavalt selgitav ja artikkel täitis oma eesmärki. Kui teil on selle artikli või mõne VBA teema osas kahtlusi, küsige minult allpool kommentaaride osas.
Excel VBA UserFormsiga alustamine| Selgitan, kuidas Excelis vormi luua, kuidas VBA tööriistakasti kasutada, kuidas kasutaja sisendeid käsitseda ja lõpuks, kuidas kasutaja sisendeid salvestada. Vaatame need teemad läbi ühe näite ja samm -sammult juhise abil.
VBA muutujad Excelis| VBA tähistab Visual Basic for Applications. See on Microsofti programmeerimiskeel. Seda kasutatakse koos Microsoft Office'i rakendustega, nagu MSExcel, MS-Word ja MS-Access, samas kui VBA muutujad on spetsiifilised märksõnad.
Exceli VBA muutuv ulatus| Kõigis programmeerimiskeeltes on meil muutuva juurdepääsu spetsifikatsioonid, mis määravad, kust saab määratud muutujale juurde pääseda. Excel VBA pole erand. Ka VBA -l on ulatuse täpsustajad.
ByRef ja ByVal argumendid | Kui argument edastatakse ByRef argumendina teisele alam- või funktsioonile, saadetakse tegeliku muutuja viide. Kõik muutuja koopiasse tehtud muudatused kajastuvad algses argumendis.
Kustutage lehed ilma kinnitusviipadeta, kasutades Microsoft Excelis VBA -d | Kuna kustutate lehti VBA abil, teate, mida teete. Sooviksite Excelil seda hoiatust mitte kuvada ja neetud leht kustutada.
Uue töövihiku lisamine ja salvestamine Microsoft Excel 2016 VBA abil| Selles koodis lõime esmalt viite töövihiku objektile. Ja siis vormistasime selle uue töövihikuobjektiga. Selle lähenemisviisi eeliseks on see, et saate selle uue töövihikuga hõlpsalt toiminguid teha. Nagu salvestamine, sulgemine, kustutamine jne
Kuva teade Exceli VBA olekuribal| Exceli olekuriba saab kasutada koodimonitorina. Kui teie VBA -kood on pikk ja teete VBA -ga mitmeid ülesandeid, keelate sageli ekraani värskendamise, nii et te ei näe seda ekraani vilkumist.
Lülitage hoiatussõnumid välja Microsoft Excel 2016 VBA abil| See kood mitte ainult ei luba VBA hoiatusi, vaid suurendab ka koodi ajakasutust. Vaatame, kuidas.
Populaarsed artiklid:
50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.
Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.
COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea oma andmeid teatud väärtuste loendamiseks filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.
Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.