VBA Listbox - izbrana postavka

Ta članek bo pokazal, kako delati z izbranim elementom v polju s seznamom v Excelu VBA.

Polja s seznami se večinoma uporabljajo v obrazcih VBA, lahko pa jih uporabite tudi v Excelovem delovnem listu. Uporabnikom prikažejo seznam možnosti, od katerih lahko eno ali več uporabnik izbere.

Ustvarjanje seznama v obrazcu VBA

Če želite ustvariti polje s seznamom v obliki VBA, moramo najprej ustvariti uporabniški obrazec.

Ko ustvarite obrazec, izberite kontrolnik List Box v orodjarni in nato povlecite, da ustvarite polje s seznamom na obrazcu.

Dodajanje vrednosti v polje s seznamom

V dogodek Initialize obrazca vnesite naslednjo kodo. Polje s seznamom bo pobralo vrednosti, ki so shranjene v obsegu celic na vašem Excelovem delovnem listu.

123456 Zasebni podporabnikForm_Initialize ()Dim rng As RangeZa vsak zvok v dosegu ("A1: A50")Me.lstState.AddItem rng.ValueNaslednji rngEnd Sub

Ko zaženemo obrazec, se prikaže polje s seznamom, kot je prikazano na spodnji sliki:

Izbira vrednosti s seznama

Privzeto lahko posamezno vrednost izberete v polju s seznamom v uporabniškem obrazcu. To pa lahko spremenite tako, da spremenite lastnost Multi-Select na seznamu.

Kliknite na polje s seznamom, da ga izberete, nato pa v oknu Lastnosti spremenite lastnost za več izbir iz 0-frmMultiSelectSingle do 1-frmMultiSelectMulti.

Ko zaženemo obrazec, lahko v polju s seznamom izberemo več možnosti.

Če spremenimo možnost v 2-frmMultiSelectExtended, to pomeni, da lahko izberemo eno od vrednosti in nato, držite tipko SHIFT, izberite drugo vrednost spodaj na seznamu in izbrani bodo tudi vsi elementi med dvema izbranima vrednostma.

Programiranje VBA | Generator kod deluje za vas!

Delo z izbranimi vrednostmi v VBA

Odvisno od vrste možnosti, ki smo jo uporabili za lastnost Multi-Select v polju s seznamom, lahko na več načinov uporabimo vrednost ali vrednosti, izbrane v polju s seznamom v kodi VBA.

Dodelitev vrednosti spremenljivki

Lahko uporabimo After_Update dogodek v polju s seznamom za dodelitev izbrane vrednosti spremenljivki.

Najprej ustvarimo spremenljivko na ravni modula na vrhu modula obrazca.

Pod besedami, Možnost izrecno, ustvarite naslednjo spremenljivko niza.

1 Zatemni strState kot niz.

Ko smo ustvarili to spremenljivko, lahko dvokliknemo polje Seznam, da odpremo kodo za obrazec, ali pa kliknemo gumb kode v urejevalniku VBE.

Dogodek klika v polju s seznamom bo samodejno ustvarjen. Izberite After_Update Dogodek iz seznama razpoložljivih postopkov.

V dogodek After_Update vnesite naslednjo kodo:

123 Zasebni podmeni lstState_AfterUpdate ()strState = Me.lstStateEnd Sub

OPOMBA: Dogodek Klik lahko izbrišete, ker ni potreben.

Če zaženemo obrazec in kliknemo na polje s seznamom, bo izbrana vrednost shranjena v spremenljivko. Če želite to preveriti, lahko v kodo vstavimo točko BREAK.

Ko zaženemo obrazec, če kliknemo na polje s seznamom, bo koda prešla v način DEBUG in se ustavila na prelomni točki. Če nato pritisnemo tipko F8 na tipkovnici, da premaknemo korak naprej v kodi, se bo spremenljivka naselila z izbranim elementom na seznamu.

To vrednost si lahko ogledamo tako, da miško položimo na spremenljivko.

ALI

Vrednost si lahko ogledamo v neposrednem oknu.

Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!

Uporaba ukaznega gumba za vrnitev vrednosti v Excel

Najprej ustvarimo ukazni gumb na obrazcu, da imamo gumb V redu za vrnitev vrednosti ali vrednosti, izbranih na seznamu, v Excel.

Izberite gumb za ukazni gumb, nato kliknite in povlecite v obrazcu, da ustvarite gumb.

V oknu Lastnosti spremenite ime gumba v cmdOKin spremenite napis in pospeševalnik gumba.

Namen pospeševalnika je, da uporabnik v tem primeru s tipkovnico aktivira gumb Alt+O bi aktiviral gumb.

Da bi ukazni gumb deloval, moramo za njim dodati kodo, tako da se koda pritisne, koda zažene. To se imenuje klik dogodka gumba.

Če želite priti do dogodka klika, dvokliknite gumb v pogledu oblikovanja obrazca. Dogodek klika bo samodejno ustvarjen, saj se to najpogosteje uporablja za ukaze.

V dogodek klika ukaznega gumba vnesite naslednjo kodo.

123 Zasebna podrejena cmdOK_Click ()Obseg ("E1") = strStateEnd Sub

Koda bo pobrala spremenljivko, ki smo jo deklarirali v dogodku After_Update ListBox, in vrnila vrednost v obseg v Excelu.

Druga možnost je, da lahko vrednost poberemo neposredno iz seznama brez uporabe spremenljivke.

123 Zasebna podrejena cmdOK_Click ()Obseg ("E1") = me.lstStateEnd Sub

Ko zaženemo obrazec, se izbrana vrednost vrne v Excel, ko kliknemo gumb V redu.

Izbira več vrednosti

Če smo lastnost večkratnega izbora polja s seznamom nastavili na 1 ali 2, ki nam omogoča izbiro več vrednosti na seznamu, je koda za izbiro teh vrednosti nekoliko drugačna.

The After_Update dogodek ni več sprožen pri izbiri vrednosti v polju s seznamom - zato tega dogodka ne moremo uporabiti.

Še vedno lahko uporabimo dogodek klika na ukaznem gumbu, vendar se moramo vrniti skozi vrednosti, izbrane v polju s seznamom, da jih vrnemo v Excel.

V ukazni gumb Kliknite dogodek vnesite naslednjo kodo.

12345678910 Zasebna podrejena cmdOK_Click ()Dim x kot celo številoRazpon ("E1"). IzberiteZa x = 0 Za Me.lstState.ListCount - 1Če je Me.lstState.Selected (x) = True PotemActiveCell = Me.lstState.List (x)ActiveCell.Offset (1, 0) .IzberiKonec ČeNaslednji xEnd Sub

Zdaj, ko zaženemo obrazec, se na Excel list vrnejo le izbrane vrednosti.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave