Kuinka luoda riippuvainen yhdistelmälaatikko VBA Excelissä?

Sisällysluettelo:

Anonim

Tiedämme, miten laskentataulukolle luodaan porrastettu pudotusvalikko tietojen validoinnin avulla. Mutta miten luomme porrastetun yhdistelmälaatikon VBA -käyttäjämuodossa. Tämä on yksi perustarpeista.

Tässä artikkelissa opimme luomaan riippuvaisen yhdistelmälaatikon VBA: han.

Logiikka riippuvaiselle yhdistelmälaatikolle VBA: ssa

Riippuvan yhdistelmälaatikon luomiseksi VBA: han meidän on alustettava yhdistelmälaatikko lähde -elementin tapahtuman yhteydessä. Jos esimerkiksi yhdistelmälaatikko riippuu valintanappiryhmästä, riippuvan yhdistelmälaatikon ladattavan koodin pitäisi toimia heti, kun joku on valinnut valintanapin. Tai jos yhdistelmälaatikko riippuu toisesta yhdistelmälaatikosta, sen tulisi latautua aina, kun yhdistelmälaatikon arvoa muutetaan.

Teoria riittää. Siirrymme esimerkkiin nähdäksesi, miten se toimii.

Yhdistelmälaatikko riippuen toisesta yhdistelmälaatikosta

Luo kaksi yhdistelmälaatikkoa. Ensin on lueteltava muutamat maiden nimet. Toisessa tulisi luetella valitun maan osavaltioiden nimet. Jos käyttäjä vaihtaa maata ensimmäisessä yhdistelmälaatikossa, toisen yhdistelmälaatikon luetteloa on muutettava.

Luodaan lomake, jossa on kaksi yhdistelmälaatikkoa, joissa on maita ja osavaltioita sekä komentopainike syötteen lähettämiseksi.

Ensimmäisessä yhdistelmälaatikossa tulisi luetella maiden nimet, eikä se ole riippuvainen mistään arvosta. Joten lataamme sen muodossa form_intialize, kuten tavallisen yhdistelmälaatikon alustuksen yhteydessä.

Kaksoisnapsauta käyttäjämuotoa. Se avaa UserForm -objektin koodausalueen. Valitse nyt vasemmasta avattavasta valikosta userform. Valitse sitten oikeanpuoleisesta avattavasta valikosta Alusta.

Tyhjä alinimi UserForm_Initialize () lisätään. Kaikki tähän alaosaan kirjoitetut asiat suoritetaan ennen kuin käyttäjälomake tulee näkyviin.

Joten kirjoitamme yhdistelmälaatikon alustuskoodin tähän.

Private Sub UserForm_Initialize () maat = Array ("Intia", "Nepal", "Bhutan", "Shree Lanka") UserForm1.ComboBox1.List = ilmoittaa End Sub 

Ensimmäinen yhdistelmälaatikko on alustettu. Aina kun lataat käyttäjälomakkeen, ensimmäinen yhdistelmälaatikko on valmis, ja siinä on maiden nimet.

Nyt toisen yhdistelmälaatikon lataamiseksi meidän on tarkasteltava, mikä arvo on valittu ensimmäisessä yhdistelmälaatikossa1, ja suoritettava koodi aina, kun yhdistelmälaatikko1 muuttaa arvojaan. Käytämme tätä varten Combobox_AfterUpdate -tapahtumaa.

Valitse vasemmasta avattavasta valikosta combobox1. Valitse oikeanpuoleisesta pudotusvalikosta AfterUpdate. Voimme myös käyttää Change -tapahtumaa, mutta pysymme artikkelissa AfterUpdate -toiminnossa.

Kirjoita nyt alla oleva koodi:

Private Sub ComboBox1_AfterUpdate () Valitse tapaus 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 ") Tapaus" Bhutan ": valtiot = Array (" Bumthang "," Trongsa "," Punakha "," Thimphu "," Paro ") Kotelo" Shree Lanka ": States = Array (" Galle "," Ratnapura "," Colombo "," Badulla "," Jaffna ") End Select ComboBox2.List = toteaa End Sub 

Tässä olemme käyttäneet valittua tapausta. Valitse tapaus -lauseke on hyvä, kun haluamme nähdä, mikä arvo valitaan monista arvoista. Olen selittänyt sen täällä yksityiskohtaisesti.

Tallenna käyttäjän lisäämä arvo käyttämällä Lähetä -painiketta. Kirjoita alla oleva koodi lähetyskomentopainikkeeseen tallentaaksesi käyttäjän laskentataulukkoon valitseman maan ja osavaltion.

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 

Jos haluat näyttää käyttäjämuodon, lisää painike laskentataulukkoon ja kirjoita alla oleva koodi. Tai voit käyttää käyttäjämuotoa yksinkertaisen moduulin avulla.

Sub load_userform () UserForm1.Show End Sub 

Suorita nyt load_userform -koodi.

Kuinka se toimii?

Kun suoritat alikoodin, jolla on koodi userform.show, VBA suorittaa userform_initialize -tapahtumat heti sen jälkeen, kun se on suorittanut userform.show -komennon. Userform_intialize -tapahtumassa olemme alustaneet ensimmäisen yhdistelmälaatikon, jossa on luettelo maista. Tämän jälkeen lomake näytetään käyttäjälle.

Kun käyttäjä valitsee minkä tahansa arvon ensimmäisestä yhdistelmälaatikosta, tapahtuma combobox1_AfterUpdate suoritetaan. Tämä tapahtuma sisältää koodin, jolla tarkistetaan, mitä arvoa käyttäjä on valinnut yhdistelmälaatikossa1, ja sen perusteella se asettaa tilat -matriisin ja alustaa yhdistelmälaatikon2 arvot tilataulukolla.

Joten joo kaverit, tällä tavalla voit luoda porrastetun yhdistelmälaatikon VBA -käyttäjämuodossa. Toivottavasti olin tarpeeksi selittävä ja artikkeli täytti tarkoituksensa. Jos sinulla on epäilyksiä tästä artikkelista tai mistä tahansa VBA -aiheesta, kysy minulta alla olevasta kommenttiosasta.

Excel VBA UserForms -ohjelman käytön aloittaminen| Selitän, miten Excel -lomake luodaan, kuinka VBA -työkalupakkia käytetään, miten käyttäjän syötteitä käsitellään ja lopuksi kuinka tallennetaan käyttäjän syötteet. Käymme nämä aiheet läpi yhden esimerkin ja vaiheittaisen oppaan avulla.

VBA -muuttujat Excelissä| VBA tarkoittaa Visual Basic for Applications. Se on Microsoftin ohjelmointikieli. Sitä käytetään Microsoft Office -sovelluksissa, kuten MSExcel, MS-Word ja MS-Access, kun taas VBA-muuttujat ovat erityisiä avainsanoja.

Excel VBA -muuttujan laajuus| Kaikilla ohjelmointikielillä on muuttujan käyttöoikeusmäärittelyt, jotka määrittävät, mistä määriteltyä muuttujaa voidaan käyttää. Excel VBA ei ole poikkeus. Myös VBA: ssa on laajuuden määrittäjiä.

ByRef- ja ByVal -argumentit | Kun argumentti välitetään ByRef -argumenttina toiselle ala- tai funktiolle, todellisen muuttujan viite lähetetään. Kaikki muuttujan kopioon tehdyt muutokset näkyvät alkuperäisessä argumentissa.

Poista taulukot ilman vahvistuskehotteita käyttämällä VBA: ta Microsoft Excelissä | Koska poistat arkkeja VBA: n avulla, tiedät mitä olet tekemässä. Haluat kertoa Excelille, ettei se näytä tätä varoitusta ja poista kirottu arkki.

Lisää ja tallenna uusi työkirja VBA: n avulla Microsoft Excel 2016: ssa| Tässä koodissa loimme ensin viittauksen työkirjaobjektiin. Ja sitten alustimme sen uudella työkirjaobjektilla. Tämän lähestymistavan etuna on, että voit tehdä tämän uuden työkirjan toimintoja helposti. Kuten tallentaminen, sulkeminen, poistaminen jne

Näytä viesti Excel VBA -tilapalkissa| Excelin tilariviä voidaan käyttää koodinäytönä. Kun VBA -koodisi on pitkä ja teet useita tehtäviä VBA: n avulla, poistat usein näytön päivityksen käytöstä, jotta et näe sitä välkkyvää.

Poista varoitusviestit käytöstä VBA: n avulla Microsoft Excel 2016: ssa| Tämä koodi ei vain poista VBA -hälytyksiä käytöstä, vaan myös lisää koodin aikatehokkuutta. Katsotaanpa miten.

Suosittuja artikkeleita:

50 Excel -pikanäppäintä tuottavuuden lisäämiseksi | Nopeuta tehtävääsi. Nämä 50 pikanäppäintä tekevät työskentelystäsi entistä nopeampaa Excelissä.

VLOOKUP -toiminto Excelissä | Tämä on yksi eniten käytetyistä ja suosituimmista Excel -toiminnoista, jota käytetään arvon etsimiseen eri alueilta ja arkeilta.

COUNTIF Excel 2016: ssa | Laske arvot olosuhteilla käyttämällä tätä hämmästyttävää toimintoa. Sinun ei tarvitse suodattaa tietoja laskeaksesi tiettyjä arvoja. Laskutoiminto on välttämätön kojelaudan valmistelemiseksi.

SUMIF -toiminnon käyttäminen Excelissä | Tämä on toinen kojelaudan olennainen toiminto. Tämä auttaa sinua laskemaan yhteen arvot tietyissä olosuhteissa.