Mes žinome, kaip sukurti pakopinį išskleidžiamąjį meniu darbalapyje naudojant duomenų patvirtinimą. Bet kaip sukurti kaskadinį išskleidžiamąjį langelį „VBA userform“. Tai yra vienas iš pagrindinių poreikių.
Šiame straipsnyje mes sužinosime, kaip sukurti priklausomą kombinuotą dėžę VBA.
Priklausomos „Combobox“ logika VBA
Norėdami sukurti priklausomą dėžutę VBA, turime inicijuoti kombinuotą dėžę šaltinio elemento įvykio metu. Pvz., Jei kombinuota dėžutė priklauso nuo radijo mygtukų grupės, tada kodas, į kurį reikia įkelti priklausomą langelį, turėtų būti paleistas iškart, kai kas nors pasirenka radijo mygtuką. Arba, jei kombinuota dėžė priklauso nuo kitos kombinuotos dėžutės, tada, priklausomai nuo kombinuotos dėžutės, ji turėtų būti įkeliama kiekvieną kartą keičiant kombinacijos vertę.
Užteks teorijos. Pereikime prie pavyzdžio, kad pamatytume, kaip tai veikia.
„ComboBox“, priklausomai nuo kitos „Combobox“
Sukurkite dvi kombinuotas dėžes. Pirmiausia reikėtų išvardyti keletą šalių pavadinimų. Kitas turėtų išvardyti pasirinktos šalies valstijų pavadinimus. Jei naudotojas pakeičia šalį pirmojoje dėžutėje, antrosios kombinacijos sąrašas turėtų būti pakeistas.
Sukurkime formą, kurioje yra du langeliai su šalių ir valstijų etiketėmis ir komandų mygtukas įvesties įvedimui.
Pirmojoje dėžutėje turėtų būti nurodyti šalių pavadinimai ir ji nepriklauso nuo jokios vertės. Taigi mes įkeliame jį į form_intialize įvykį, kaip tai darome atliekant pagrindinį dėžutės inicijavimą.
Dukart spustelėkite vartotojo formą. Tai atvers „UserForm Object“ kodavimo sritį. Dabar kairiajame išskleidžiamajame meniu pasirinkite userform. Tada dešiniajame išskleidžiamajame meniu pasirinkite inicijuoti.
Bus įterptas tuščias antrinis pavadinimas UserForm_Initialize (). Viskas, kas parašyta šiame poskyryje, bus vykdoma prieš pasirodant vartotojo formai.
Taigi čia rašome „Combobox“ inicijavimo kodą.
Private Sub UserForm_Initialize () šalys = masyvas („Indija“, „Nepalas“, „Butanas“, „Šri Lanka“) UserForm1.ComboBox1.List = nurodo pabaigos antraštę
Mes inicijavome pirmąją kombinuotą dėžę. Kai įkeliate vartotojo formą, bus paruoštas pirmasis derinys su šalių pavadinimais.
Dabar, norėdami įkelti antrąją kombinuotąją dėžutę, turime pažvelgti į tai, kokia reikšmė pasirinkta pirmojoje „combobox1“, ir paleisti kodą kiekvieną kartą, kai „combobox1“ keičia savo vertes. Tam naudosime įvykį „Combobox_AfterUpdate“.
Kairiajame išskleidžiamajame meniu pasirinkite combobox1. Iš dešiniojo išskleidžiamojo meniu pasirinkite „AfterUpdate“. Taip pat galime naudoti įvykį „Keisti“, tačiau straipsnyje laikysimės „AfterUpdate“.
Dabar parašykite žemiau esantį kodą:
Private Sub ComboBox1_AfterUpdate () Pasirinkite atvejį ComboBox1.Value Case "India": States = Array ("Delhi", "UP", "UK", "Gujrat", "Kašmyras") Byla "Nepalas": States = Array ("Arun Kšetra "," Janakpuras Kšetra "," Katmandu Kšetra ", _" Gandak Kšetra "," Kapilavastu Kšetra ") Byla" Butanas ": valstijos = Array (" Bumthang "," Trongsa "," Punakha "," Thimphu "," Paro ") Byla" Shree Lanka ": States = Array (" Galle "," Ratnapura "," Colombo "," Badulla "," Jaffna ") Pabaiga Pasirinkite ComboBox2.List = teigia End Sub
Čia mes panaudojome pasirinktą atvejo teiginį. Pasirinkimo atvejis teiginys yra geras, kai norime pamatyti, kokia vertė yra pasirinkta iš daugelio verčių. Čia aš tai išsamiai paaiškinau.
Norėdami išsaugoti vartotojo įterptą vertę, naudokite mygtuką Pateikti. Įrašykite žemiau esantį kodą į komandų mygtuką „Pateikti“, kad išsaugotumėte darbalapyje vartotojo pasirinktą šalį ir valstiją.
Private Sub CommandButton1_Click () country = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets ("sheet1"). Diapazonas ("G1") = šalis ThisWorkbook.Worksheets ("sheet1"). Range ("H1") = State Unload Me End Sub
Dabar, norėdami parodyti vartotojo formą, įdėkite darbalapio mygtuką ir parašykite žemiau esantį kodą. Arba galite naudoti paprastą modulį, kad parodytumėte vartotojo formą.
Subload load_userform () UserForm1.Rodyti pabaigos sub
Dabar paleiskite load_userform kodą.
Kaip tai veikia?
Kai paleidžiate antrinį elementą, kurio kodas userform.show, VBA paleidžia įvykius userform_initialize iškart po to, kai paleidžia komandą userform.show. Įvykyje userform_intialize mes inicijavome pirmąją kombinaciją, kurioje yra šalių sąrašas. Vėliau forma bus rodoma vartotojui.
Dabar, kai vartotojas pasirenka bet kokią vertę iš pirmosios kombinuotos dėžutės, įvykis combobox1_AfterUpdate vykdomas. Šiame įvykyje yra kodas, skirtas patikrinti, kokią reikšmę vartotojas pasirinko „combobox1“, ir, remdamasis šia verte, nustato būsenų masyvą ir inicijuoja „combobox2“ reikšmes būsenų masyvu.
Taigi taip, vaikinai, taip sukuriate kaskadinę kombinuotą dėžę VBA vartotojo formoje. Tikiuosi, kad buvau pakankamai aiškus ir straipsnis atitiko savo tikslą. Jei turite kokių nors abejonių dėl šio straipsnio ar bet kurios VBA temos, paklauskite manęs komentarų skiltyje žemiau.
Darbo su „Excel VBA UserForms“ pradžia| Aš paaiškinsiu, kaip sukurti formą „Excel“, kaip naudoti VBA įrankių rinkinį, kaip tvarkyti vartotojo įvestis ir galiausiai, kaip išsaugoti vartotojo įvestis. Mes pereisime šias temas naudodami vieną pavyzdį ir žingsnis po žingsnio vadovą.
VBA kintamieji „Excel“| VBA reiškia „Visual Basic for Applications“. Tai programavimo kalba iš „Microsoft“. Jis naudojamas su „Microsoft Office“ programomis, tokiomis kaip „MSExcel“, „MS-Word“ ir „MS-Access“, tuo tarpu VBA kintamieji yra konkretūs raktiniai žodžiai.
„Excel VBA“ kintamoji apimtis| Visose programavimo kalbose mes turime kintamosios prieigos specifikatorius, kurie apibrėžia, iš kur galima pasiekti apibrėžtą kintamąjį. „Excel VBA“ nėra išimtis. VBA taip pat turi apimties specifikacijas.
ByRef ir ByVal argumentai | Kai argumentas perduodamas kaip „ByRef“ argumentas kitam padaliniui ar funkcijai, siunčiama tikrojo kintamojo nuoroda. Bet kokie kintamojo kopijos pakeitimai atsispindės pradiniame argumente.
Ištrinkite lapus be patvirtinimo raginimų naudodami „Microsoft Excel“ VBA | Kadangi trinate lapus naudodami VBA, žinote, ką darote. Norite pasakyti „Excel“ nerodyti šio įspėjimo ir ištrinti prakeiktą lapą.
Pridėkite ir išsaugokite naują darbaknygę naudodami „Microsoft Excel 2016“ VBA| Šiame kode pirmiausia sukūrėme nuorodą į darbaknygės objektą. Ir tada mes jį inicijavome naudodami naują darbo knygos objektą. Šio metodo pranašumas yra tas, kad galite lengvai atlikti operacijas su šia nauja darbaknyge. Kaip išsaugoti, uždaryti, ištrinti ir pan
Rodyti pranešimą „Excel“ VBA būsenos juostoje| „Excel“ būsenos juosta gali būti naudojama kaip kodo monitorius. Kai jūsų VBA kodas yra ilgas ir atliekate kelias užduotis naudodami VBA, dažnai išjungiate ekrano atnaujinimą, kad nematytumėte to ekrano mirgėjimo.
Išjunkite įspėjamuosius pranešimus naudodami VBA programoje „Microsoft Excel 2016“| Šis kodas ne tik išjungia VBA įspėjimus, bet ir padidina kodo laiko efektyvumą. Pažiūrėkime, kaip.
Populiarūs straipsniai:
50 „Excel“ nuorodų, skirtų produktyvumui padidinti | Greičiau atlikite savo užduotį. Šie 50 sparčiųjų klavišų leis dar greičiau dirbti naudojant „Excel“.
„VLOOKUP“ funkcija „Excel“ | Tai yra viena iš dažniausiai naudojamų ir populiariausių „Excel“ funkcijų, naudojama norint ieškoti vertės iš įvairių diapazonų ir lapų.
COUNTIF „Excel 2016“ | Naudodami šią nuostabią funkciją, suskaičiuokite reikšmes su sąlygomis. Norint suskaičiuoti konkrečias vertes, nereikia filtruoti duomenų. Skaitiklio funkcija yra būtina norint paruošti prietaisų skydelį.
Kaip naudoti „SUMIF“ funkciją „Excel“ | Tai dar viena esminė prietaisų skydelio funkcija. Tai padeda apibendrinti vertes konkrečiomis sąlygomis.