„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.