VBA sąrašų dėžutė

VBA galite sukurti a Sąrašo dėžutė kur vartotojas gali pasirinkti vieną iš išvardytų parinkčių. Sąrašo dėžutė dažnai naudojama „Userforms“, bet taip pat gali būti naudojama darbalapyje. Šioje pamokoje sužinosite, kaip sukurti, užpildyti ir ištrinti sąrašų dėžutę. Taip pat pamatysite, kaip gauti vartotojo pasirinkimą VBA ir naudoti jį kodu.

Jei norite sužinoti, kaip sukurti „ComboBox“, spustelėkite čia: „VBA ComboBox“

Jei norite sužinoti, kaip sukurti žymimąjį laukelį, spustelėkite čia: VBA žymimasis laukelis

Sukurkite sąrašų dėžutę

Norėdami įterpti sąrašo laukelį į darbalapį, turite eiti į Skirtukas kūrėjas, spustelėkite Įdėti ir skiltyje „ActiveX“ valdikliai pasirinkite Sąrašo laukelis:

Vaizdas 1. Į darbalapį įterpkite sąrašo laukelį

Pasirinkę sąrašo dėžutę, kurią įterpėte, galite spustelėti Savybės po Skirtukas kūrėjas:

2 paveikslas. Keisti sąrašo ypatybes

Čia galite nustatyti skirtingas sąrašo ypatybes. Pradžiai mes pakeitėme atributą vardas į „lstListBox“. Dabar galime naudoti sąrašo dėžutę šiuo pavadinimu VBA kode.

Įveskite sąrašo dėžutę į VBA kodą

Pirma, turime užpildyti sąrašo lauką vertėmis. Daugeliu atvejų, atidarius darbaknygę, sąrašas turi būti užpildytas. Dėl to mes turime į objektą įtraukti „Listbox“ užpildymo kodą Darbo knyga, procedūra Atviras. Ši procedūra atliekama kiekvieną kartą, kai vartotojas atidaro darbaknygę. Čia yra kodas:

123456789 Su „Sheet1.lstListBox“. Pridėti „Jonas“. Pridėti „Michaelas“.AddItem "Jennifer".AddItem "Lilly".AddItem "Robertas"Pabaiga su

Kaip matote 3 paveiksle, savo sąrašo dėžutę užpildėme 5 vardais (John, Michael, Jennifer, Lilly ir Robert):

3 pav. Užpildykite sąrašo dėžutę VBA

Įrašykite sąrašo dėžutę iš ląstelių diapazono

Kitas galimas būdas užpildyti sąrašo dėžutę yra leisti vartotojui tai padaryti. Sąrašo dėžutė gali būti susieta su langelių diapazonu. Todėl kiekvieną kartą, kai vartotojas įveda naują langelių diapazono vertę, sąrašo dėžutė bus atnaujinta ta verte.

Jei norite tai įjungti, turite eiti į Savybės iš „ListBox“ ir nustatykite atributą ListFillRange:

4 paveikslas. Sąrašo laukelį užpildykite iš langelių diapazono

Sąrašo dėžutę susiejome su diapazonu E2: E5, kur įrašome norimus vardus (Nathanas, Harry, George'as, Roberta). Todėl dabar sąrašų dėžutė užpildyta šiais pavadinimais.

Gaukite pasirinktą sąrašo dėžutės elementą VBA

Sąrašo dėžutės tikslas yra suteikti vartotojams galimybę pasirinkti. Norėdami gauti naudotojo pasirinktą vertę, turite naudoti šį kodą:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.lstListBox.Value

Atribute yra vartotojo pasirinkimas Vertė apie Sheet1.lstListbox objektas. Ši vertė priskiriama kintamajam strSelectedItem:

Vaizdas 5. Gaukite pasirinktą vertę iš sąrašo dėžutės VBA

Mes pasirinkome Haris sąrašo laukelyje ir įvykdė procedūrą. Kaip matote 5 paveiksle, reikšmė strSelectedItem yra Haris, kurią pasirinkome. Be to, šį kintamąjį galite apdoroti kodu.

Išvalyti sąrašų dėžutę

Norėdami išvalyti sąrašo dėžutę VBA, turite naudoti Skaidrus metodas Sheet1.lstListBox objektas. Jis ištrins visus elementus iš sąrašo. Čia yra kodas:

1 Sheet1.lstListBox.Clear

Kai vykdome kodą, gauname tuščią sąrašo laukelį:

Vaizdas 6. Išvalyti sąrašo laukelį

Naudokite „Userbox“ sąrašų dėžutę

Kaip minėjome, „Listbox“ dažniausiai naudojamas „Userforms“. Norėdami paaiškinti, kaip tai padaryti, pirmiausia įterpsime „Userform“. VBA redaktoriuje dešiniuoju pelės mygtuku spustelėkite modulio pavadinimą, spustelėkite Įdėti ir pasirinkti UserForm:

7 paveikslėlis. Įterpkite vartotojo formą

Norėdami rodyti įterpimo valdiklius, turite įjungti Įrankių dėžė. Norėdami tai padaryti, spustelėkiteĮrankių dėžė piktogramą įrankių juostoje. Po to gausite langus su visais prieinamais valdikliais. Galite spustelėti „ListBox“ norėdami jį sukurti naudotojo formoje.

8 paveikslėlis. Įdėkite sąrašo dėžutę į vartotojo formą

Pavadinsime „ComboBox“ cmbComboBox. Norėdami jį užpildyti reikšmėmis, į metodą turime įtraukti šį kodą Inicijuoti nuo objekto UserForm:

12345678910111213 Privatus antrinis vartotojasForm_Initialize ()Su UserForm1.lstListBox. Pridėti „Jonas“. Pridėti „Michaelas“.AddItem "Jennifer".AddItem "Lilly".AddItem "Robertas"Pabaiga suPabaiga Sub

Šis kodas suaktyvinamas kiekvieną kartą, kai vartotojas paleidžia „Userform“ ir užpildo sąrašo lauką šiais 5 pavadinimais:

9 paveikslėlis. Sąrašo dėžutė su reikšmėmis vartotojo formoje

Jei norite gauti pasirinktą vertę iš „ComboBox“, turite naudoti tą pačią „Combobox“ darbalapyje logiką, kuri paaiškinta anksčiau straipsnyje.

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

wave wave wave wave wave