„VBA ComboBox“

„ComboBoxes“ leisti vartotojams pasirinkti parinktį iš išskleidžiamojo meniu sąrašo. „ComboBoxes“ galima sukurti naudojant „VBA UserForms“ arba naudojant „Excel“ darbalapį. Šioje pamokoje sužinosite, kaip kurti ir manipuliuoti „ComboBoxes“ VBA ir „Excel“ darbalapiuose.

Jei norite sužinoti, kaip sukurti sąrašų dėžutę, spustelėkite čia: VBA sąrašo dėžutė

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

Sukurkite „ComboBox“ „Excel“ darbalapyje

Norėdami įterpti „ComboBox“ į darbalapį, turite eiti į Skirtukas kūrėjas, spustelėkite Įdėti ir skiltyje „ActiveX“ valdikliai pasirinkite Sudėtinė dėžutė:

Vaizdas 1. Į darbalapį įdėkite „ComboBox“

Pasirinkę įterptą „ComboBox“, galite spustelėti Savybės po Skirtukas kūrėjas:

2 pav. Pakeiskite „ComboBox“ ypatybes

Čia galite nustatyti skirtingas „ComboBox“ savybes. Norėdami pradėti, mes pakeitėme atributą vardas į cmbComboBox. Dabar mes galime naudoti „ComboBox“ šiuo pavadinimu VBA kode.

Užpildykite „ComboBox“ VBA kode

Pirma, mes turime užpildyti „ComboBox“ vertėmis. Daugeliu atvejų, atidarius darbaknygę, reikia užpildyti „ComboBox“. Dėl šios priežasties mes turime įvesti kodą ComboBox užpildymui objekte Darbo knyga, procedūra Atviras. Ši procedūra atliekama kiekvieną kartą, kai vartotojas atidaro darbaknygę. Čia yra kodas:

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

Spustelėję išskleidžiamąjį meniu gausite 5 vardus (John, Michael, Jennifer, Lilly ir Robert):

3 paveikslas. Užpildykite „ComboBox“ VBA

Užpildykite „ComboBox“ iš ląstelių diapazono

Kitas galimas būdas užpildyti „ComboBox“ yra leisti vartotojui tai padaryti. „ComboBox“ galima susieti su langelių diapazonu. Taikant šį metodą, kiekvieną kartą vartotojui įvedus naują langelių diapazono vertę, „ComboBox“ bus atnaujinta ta verte.

Jei norite tai įjungti, turite eiti į Savybės iš „ComboBox“ ir nustatykite atributą ListFillRange į ląstelių diapazoną (mūsų atveju E2: E5):

4 paveikslas. Užpildykite langelį ComboBox iš langelių diapazono

Mes susiejome savo „ComboBox“ su diapazonu E2: E5, kur įdėjome norimus vardus (Nathan, Harry, George, Roberta). Dėl to dabar „ComboBox“ yra šie pavadinimai:

5 paveikslėlis. „ComboBox“ iš ląstelių diapazono

Gaukite pasirinktą „ComboBox“ elementą VBA

„ComboBox“ tikslas yra pasirinkti vartotojus. Norėdami gauti naudotojų pasirinkimą, turite naudoti šį kodą:

123 Dim strSelectedItem As VariantstrSelectedItem = Sheet1.cmbComboBox.Value

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

Vaizdas 6. Gaukite pasirinktą vertę iš „ComboBox“ VBA

Mes pasirinkome Julija „ComboBox“ ir įvykdė procedūrą. Kaip matote 5 paveiksle, reikšmė strSelectedItem yra Julija, kurią pasirinkome. Dabar šį kintamąjį galite toliau apdoroti kodu.

Išvalykite „ComboBox“

Jei norite išvalyti „ComboBox“ VBA, turite naudoti Skaidrus metodas Sheet1.lstComboBox objektas. Jis ištrins visus elementus iš „ComboBox“. Čia yra kodas:

1 Sheet1.cmbComboBox.Clear

Kai vykdome kodą, gauname tuščią „ComboBox“:

Vaizdas 7. Išvalykite „ComboBox“

Naudokite „ComboBox“ naudotojo formoje

Kaip jau minėjome, „Combobox“ 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:

8 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 „ComboBox“ norėdami jį sukurti naudotojo formoje.

Vaizdas 9. Įdėkite „ComboBox“ į „Userform“

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.cmbComboBox. Pridėti „Jonas“. Pridėti „Michaelas“.AddItem "Jennifer".AddItem "Lilly".AddItem "Robertas"Pabaiga suPabaiga Sub

Šis kodas suaktyvinamas kiekvieną kartą, kai naudotojas paleidžia „Userform“ ir užpildo „Combobox“ šiais 5 pavadinimais:

Vaizdas 10. Kombinuotas langelis su reikšmėmis „Userform“

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

wave wave wave wave wave