Kā izveidot atkarīgu kombinēto lodziņu programmā VBA Excel?

Satura rādītājs:

Anonim

Mēs zinām, kā izveidot kaskādes nolaižamo izvēlni darblapā, izmantojot datu validāciju. Bet kā mēs varam izveidot kaskādes kombinētās kastes nolaižamo izvēlni VBA lietotāja formā. Šī ir viena no pamatvajadzībām.

Šajā rakstā mēs uzzināsim, kā izveidot atkarīgu kombinēto kasti VBA.

Loģika atkarīgai kombinētai kastei VBA

Lai VBA izveidotu atkarīgu kombinēto kasti, mums ir jāinicializē kombinētā kaste avota elementa notikuma gadījumā. Piemēram, ja kombinētā kaste ir atkarīga no radiopogas grupas, tad kodam, kas jāielādē, ir jāpalaiž tūlīt pēc tam, kad kāds ir izvēlējies radio pogu. Vai arī, ja kombinētā kaste ir atkarīga no citas kombinētās kastes, tad atkarībā no kombinētās kastes ir jāielādē ikreiz, kad tiek mainīta vērtība.

Pietiek ar teoriju. Apskatīsim piemēru, lai redzētu, kā tas darbojas.

ComboBox Atkarībā no citas kombinētās kastes

Izveidojiet divas kombinētās kastes. Vispirms vajadzētu uzskaitīt dažus valstu nosaukumus. Otram vajadzētu uzskaitīt atlasītās valsts štatu nosaukumus. Ja lietotājs maina valsti pirmajā kombinētajā kastē, otrās kombinētās kastes saraksts ir jāmaina.

Izveidosim veidlapu, kurā ir divas kombinētās kastes ar valstu un štatu iezīmēm un komandu pogu ievades ievadīšanai.

Pirmajā kombinētajā lodziņā vajadzētu norādīt valstu nosaukumus, un tas nav atkarīgs no vērtības. Tāpēc mēs to ielādēsim notikumā form_intialize, tāpat kā pamata kombinētās kastes inicializēšanai.

Veiciet dubultklikšķi uz lietotāja veidlapas. Tas atvērs kodēšanas apgabalu objektā UserForm. Tagad no kreisās nolaižamās izvēlnes atlasiet userform. Pēc tam labajā nolaižamajā izvēlnē atlasiet inicializēt.

Tiks ievietots tukšs apakšvārds UserForm_Initialize (). Viss, kas rakstīts šajā apakšdaļā, tiks izpildīts pirms lietotāja veidlapas parādīšanās.

Tāpēc mēs šeit ierakstām kombinētās kastes inicializācijas kodu.

Privāts apakšlietotājs UserForm_Initialize () valstis = masīvs ("Indija", "Nepāla", "Butāna", "Šrī Lanka") UserForm1.ComboBox1.List = norāda beigu apakšiedaļu 

Mums ir inicializēta pirmā kombinētā kaste. Ikreiz, kad ielādēsiet lietotāja veidlapu, būs gatavs pirmais kombinētais lodziņš ar valstu nosaukumu.

Tagad, lai ielādētu otro kombinēto lodziņu, mums ir jāskatās, kāda vērtība ir atlasīta pirmajā kombinētajā lodziņā1, un jāpalaiž kods katru reizi, kad combobox1 maina savas vērtības. Šim nolūkam mēs izmantosim notikumu Combobox_AfterUpdate.

Kreisajā nolaižamajā izvēlnē atlasiet combobox1. Labajā nolaižamajā izvēlnē atlasiet AfterUpdate. Mēs varam izmantot arī notikumu Mainīt, taču rakstā pieturēsimies pie AfterUpdate.

Tagad uzrakstiet zemāk esošo kodu:

Private Sub ComboBox1_AfterUpdate () Atlasiet lietu ComboBox1.Value Lieta "India": States = Array ("Delhi", "UP", "UK", "Gujrat", "Kašmira") Lieta "Nepāla": States = Array ("Arun Kšetra "," Janakpura Kšetra "," Katmandu Kšetra ", _" Gandak Kšetra "," Kapilavastu Kšetra ") Lieta" Butāna ": štati = Array (" Bumthang "," Trongsa "," Punakha "," Thimphu "," Paro ") Lieta" Shree Lanka ": valstis = Array (" Galle "," Ratnapura "," Colombo "," Badulla "," Jaffna ") Beigas Atlasiet ComboBox2.List = valstis End Sub 

Šeit mēs esam izmantojuši atsevišķa gadījuma paziņojumu. Izvēles gadījuma paziņojums ir labs, ja vēlamies redzēt, kāda vērtība tiek izvēlēta no daudzām vērtībām. Šeit es to detalizēti paskaidroju.

Lai saglabātu lietotāja ievietoto vērtību, izmantojiet pogu Iesniegt. Ierakstiet tālāk norādīto kodu komandu iesniegšanas pogu, lai saglabātu darblapā lietotāja izvēlēto valsti un valsti.

Private Sub CommandButton1_Click () country = ComboBox1.Value State = ComboBox2.Value ThisWorkbook.Worksheets ("sheet1"). Diapazons ("G1") = valsts ThisWorkbook.Worksheets ("sheet1"). Diapazons ("H1") = Valsts izkraušana Me End Sub 

Tagad, lai parādītu lietotāja veidlapu, darblapā ievietojiet pogu un ierakstiet zemāk esošo kodu. Vai arī varat izmantot vienkāršu moduli, lai parādītu lietotāja formu.

Sub load_userform () UserForm1.Show End Sub 

Tagad palaidiet kodu load_userform.

Kā tas darbojas?

Palaižot apakšprogrammu, kuras kods ir userform.show, VBA palaiž notikumus userform_initialize tūlīt pēc komandas userform.show. Pasākumā userform_intialize mēs esam inicializējuši pirmo kombinēto lodziņu, kurā ir valstu saraksts. Pēc tam veidlapa tiek parādīta lietotājam.

Tagad, kad lietotājs izvēlas jebkuru vērtību no pirmās kombinētās kastes, tiek palaists notikums combobox1_AfterUpdate. Šis notikums satur kodu, lai pārbaudītu, kādu vērtību lietotājs ir izvēlējies combobox1, un, pamatojoties uz šo vērtību, tas nosaka stāvokļu masīvu un inicializē combobox2 vērtības ar stāvokļu masīvu.

Jā, puiši, šādi jūs izveidojat kaskādes kombinēto kasti VBA lietotāja formā. Ceru, ka biju pietiekami izskaidrojošs un raksts kalpoja savam mērķim. Ja jums ir šaubas par šo rakstu vai kādu VBA tēmu, jautājiet man komentāru sadaļā zemāk.

Darba sākšana ar Excel VBA UserForms| Es paskaidrošu, kā izveidot veidlapu programmā Excel, kā izmantot VBA rīklodziņu, kā rīkoties ar lietotāja ievadi un visbeidzot, kā saglabāt lietotāja ievadīto informāciju. Mēs apskatīsim šīs tēmas, izmantojot vienu piemēru un soli pa solim.

VBA mainīgie programmā Excel| VBA apzīmē Visual Basic for Applications. Tā ir programmēšanas valoda no Microsoft. To izmanto ar Microsoft Office lietojumprogrammām, piemēram, MSExcel, MS-Word un MS-Access, turpretī VBA mainīgie ir specifiski atslēgvārdi.

Excel VBA mainīgā darbības joma| Visās programmēšanas valodās mums ir mainīgas piekļuves specifikatori, kas nosaka, no kurienes var piekļūt definētajam mainīgajam. Excel VBA nav izņēmums. Arī VBA ir darbības jomas specifikatori.

ByRef un ByVal argumenti | Kad arguments tiek nodots kā ByRef arguments citai apakšfunkcijai vai funkcijai, tiek nosūtīta faktiskā mainīgā atsauce. Visas izmaiņas, kas veiktas mainīgā kopijā, tiks atspoguļotas sākotnējā argumentā.

Izdzēsiet lapas bez apstiprinājuma uzvednēm, izmantojot Microsoft Excel VBA | Tā kā jūs dzēšat lapas, izmantojot VBA, jūs zināt, ko darāt. Jūs vēlaties pateikt programmai Excel nerādīt šo brīdinājumu un izdzēst sasodīto lapu.

Pievienojiet un saglabājiet jaunu darbgrāmatu, izmantojot VBA programmā Microsoft Excel 2016| Šajā kodā mēs vispirms izveidojām atsauci uz darbgrāmatas objektu. Un tad mēs to inicializējām ar jaunu darbgrāmatas objektu. Šīs pieejas priekšrocība ir tā, ka jūs varat viegli veikt darbības ar šo jauno darbgrāmatu. Piemēram, saglabāšana, aizvēršana, dzēšana utt

Parādiet ziņojumu Excel VBA statusa joslā| Excel statusa joslu var izmantot kā koda monitoru. Ja jūsu VBA kods ir garš un veicat vairākus uzdevumus, izmantojot VBA, jūs bieži atspējojat ekrāna atjaunināšanu, lai neredzētu ekrāna mirgošanu.

Izslēdziet brīdinājuma ziņojumus, izmantojot VBA programmā Microsoft Excel 2016| Šis kods ne tikai atspējo VBA brīdinājumus, bet arī palielina koda laika efektivitāti. Redzēsim, kā.

Populāri raksti:

50 Excel saīsnes, lai palielinātu produktivitāti | Ātrāk izpildiet savu uzdevumu. Šie 50 īsceļi ļaus jums strādāt vēl ātrāk programmā Excel.

Funkcija VLOOKUP programmā Excel | Šī ir viena no visbiežāk izmantotajām un populārākajām Excel funkcijām, kas tiek izmantota, lai meklētu vērtību no dažādiem diapazoniem un lapām.

COUNTIF programmā Excel 2016 | Saskaitiet vērtības ar nosacījumiem, izmantojot šo apbrīnojamo funkciju. Jums nav jāfiltrē dati, lai saskaitītu noteiktas vērtības. Skaitītāja funkcija ir būtiska, lai sagatavotu informācijas paneli.

Kā lietot SUMIF funkciju programmā Excel | Šī ir vēl viena būtiska informācijas paneļa funkcija. Tas palīdz apkopot vērtības noteiktos apstākļos.