VBA sąrašo dėžutė - pasirinktas elementas

Šiame straipsnyje bus parodyta, kaip dirbti su pasirinktu elementu „Excel VBA“ sąrašo laukelyje.

Sąrašų langeliai dažniausiai naudojami VBA formose, bet taip pat gali būti naudojami „Excel“ darbalapyje. Juose vartotojams rodomas parinkčių sąrašas, kurį vartotojas gali pasirinkti vieną ar daugiau.

Sąrašo laukelio kūrimas VBA formoje

Norėdami sukurti sąrašo laukelį VBA formoje, pirmiausia turime sukurti „UserForm“.

Sukūrę formą, įrankių juostoje pasirinkite sąrašo laukelio valdiklį ir vilkite, kad formoje sukurtumėte sąrašo laukelį.

Vertių pridėjimas prie sąrašo laukelio

Formos įvykyje Inicijuoti įveskite šį kodą. Sąrašo laukelis pasiims reikšmes, kurios yra saugomos „Excel“ darbalapio ląstelių diapazone.

123456 Privatus antrinis vartotojasForm_Initialize ()Dim rng As RangeKiekvienam diapazonui („A1: A50“)Me.lstState.AddItem rng.ValueKitas rngPabaiga Sub

Kai vykdysime formą, sąrašo laukelis bus parodytas, kaip parodyta paveikslėlyje žemiau:

Vertybių pasirinkimas iš sąrašo laukelio

Pagal numatytuosius nustatymus vieną reikšmę galima pasirinkti vartotojo formos sąrašo laukelyje. Tačiau tai galima pakeisti pakeičiant sąrašo laukelio ypatybę „Multi-Select“.

Spustelėkite sąrašo laukelį, kad jį pasirinktumėte, tada lange Ypatybės pakeiskite kelių pasirinkimų ypatybę iš 0-frmMultiSelectSingle į 1-frmMultiSelectMulti.

Dabar, kai vykdome formą, sąrašo laukelyje galime pasirinkti daugiau nei vieną parinktį.

Jei pakeisime variantą būti 2-frmMultiSelectExtended, tai reiškia, kad galime pasirinkti vieną iš verčių ir tada laikydami nuspaudę klavišą SHIFT, pasirinkite kitą vertę žemiau sąrašo, taip pat bus pasirinkti visi elementai tarp 2 pasirinktų verčių.

VBA programavimas | Kodo generatorius jums tinka!

Darbas su pasirinktomis vertybėmis VBA

Atsižvelgiant į parinkties tipą, kurį naudojome „Multi-Select“ ypatybei sąrašo laukelyje, yra keletas būdų, kaip galime naudoti vertę ar reikšmes, pasirinktas sąrašo laukelyje VBA kode.

Vertės priskyrimas kintamajam

Mes galime naudoti After_Update sąrašo laukelio įvykį, kad pasirinktai vertei priskirtumėte kintamąjį.

Pirma, formos modulio viršuje sukursime modulio lygio kintamąjį.

Po žodžiais, Pasirinkimas aiškus, sukurkite šį eilutės kintamąjį.

1 Pritemdyti strState kaip eilutę.

Sukūrę šį kintamąjį, galime dukart spustelėti laukelį Sąrašas, kad pereitumėte prie formos, esančios už formos, arba spustelėti kodo mygtuką VBE redaktoriuje.

Sąrašo laukelio paspaudimo įvykis bus sukurtas automatiškai. Pasirinkite After_Update Įvykio forma pateikiamas galimų procedūrų sąrašas.

Įvykyje „After_Update“ įveskite šį kodą:

123 Privatus subststate_AfterUpdate ()strState = Me.lstStatePabaiga Sub

PASTABA: Paspaudimo įvykį galite ištrinti, nes jis nėra būtinas.

Dabar, jei paleisime formą ir spustelėsime sąrašo laukelį, pasirinkta vertė bus saugoma kintamajame. Norėdami tai patikrinti, į kodą galime įterpti tašką BREAK.

Dabar, kai vykdome formą, spustelėję sąrašo laukelį, kodas pereis į DEBUG režimą ir sustos mūsų lūžio vietoje. Jei paspausime klaviatūros klavišą F8, norėdami pereiti žingsnį toliau kodu, kintamasis bus užpildytas pasirinktu elementu sąraše.

Šią vertę galime pamatyti padėję pelę ant kintamojo.

ARBA

Vertę galime pamatyti iš karto esančiame lange.

Pavargote ieškoti VBA kodo pavyzdžių? Išbandykite „AutoMacro“!

Komandos mygtuko naudojimas norint grąžinti vertę į „Excel“

Pirma, formoje sukuriame komandos mygtuką, kad būtų mygtukas OK, kad sąrašo laukelyje pasirinkta vertė būtų grąžinta „Excel“.

Pasirinkite komandų mygtuko valdiklį, tada spustelėkite ir vilkite savo formą, kad sukurtumėte mygtuką.

Lange Ypatybės pakeiskite mygtuko pavadinimą į cmdOKir pakeiskite mygtuko antraštę ir greitintuvą.

„Accelerator“ tikslas yra, kad vartotojas šiuo atveju naudotų klaviatūrą mygtukui suaktyvinti Alt+O. suaktyvintų mygtuką.

Kad komandų mygtukas veiktų, už jo turime pridėti kodą, kad spustelėjus mygtuką, kodas būtų paleistas. Tai vadinama mygtuko paspaudimo įvykiu.

Norėdami patekti į paspaudimo įvykį, formos dizaino rodinyje dukart spustelėkite mygtuką. Paspaudimo įvykis bus sukurtas automatiškai, nes šis įvykis dažniausiai naudojamas komandų mygtukams.

Įveskite šį kodą į komandos mygtuko paspaudimo įvykį.

123 Privatus antrinis cmdOK_Click ()Diapazonas ("E1") = strStatePabaiga Sub

Kodas pasiims kintamąjį, kurį deklaravome „ListBox“ įvykyje „After_Update“, ir grąžins vertę į „Excel“ diapazoną.

Arba galime pasiimti vertę tiesiai iš sąrašo laukelio, nenaudodami kintamojo.

123 Privatus antrinis cmdOK_Click ()Diapazonas ("E1") = me.lstStatePabaiga Sub

Kai vykdome formą, pasirinkta vertė bus grąžinta į „Excel“, kai spustelėsime mygtuką Gerai.

Kelių verčių pasirinkimas

Jei mes nustatėme sąrašo langelio kelių pasirinkimų ypatybę į 1 arba 2, kuri leidžia mums pasirinkti kelias sąrašo vertes, tada šių reikšmių pasirinkimo kodas yra šiek tiek kitoks.

The After_Update įvykis nebebus suaktyvinamas pasirinkus reikšmes sąrašo laukelyje - todėl negalime naudoti šio įvykio.

Mes vis dar galime naudoti komandų mygtuko paspaudimo įvykį, tačiau norėdami grąžinti jas į „Excel“, turime peržiūrėti sąrašo laukelyje pasirinktas reikšmes.

Komandos mygtuke Spustelėkite įvykį, įveskite šį kodą.

12345678910 Privatus antrinis cmdOK_Click ()Dim x As IntegerDiapazonas („E1“). PasirinkiteX = 0 Man.lstState.ListCount - 1Jei Me.lstState.Selected (x) = Tiesa tadaActiveCell = Me.lstState.List (x)„ActiveCell. Offset“ (1, 0). PasirinkitePabaiga JeiKitas xPabaiga Sub

Dabar, kai vykdome formą, tik pasirinktos vertės bus grąžintos į „Excel“ lapą.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave