Sisukord
Kui me töötame suure andmestikuga, on sageli raske sealt mingit selektiivset väärtust välja tuua. Lisaks ei saa valida korraga rohkem kui mitut infot. Sel juhul, ListBox on väga kasulik lahendus Excel . Kuid selle loomise protsess ListBox on veidi keeruline. Seetõttu õpime selles artiklis, kuidas luua mitme valikuga ListBox excelis mõne lihtsa sammuga.
Lae alla praktiline töövihik
Hangi näidisfail harjutamiseks.
Multi Select ListBox.xlsmSamm-sammult protseduurid Multi Select ListBoxi loomiseks Excelis
Protsessi lihtsustamiseks oleme selle jaotanud järgmiselt. 8 sammud paremaks mõistmiseks. Niisiis, ilma pikema viivituseta, hüppame alljärgnevate sammude juurde, et näha, kuidas saame luua mitme valiku ListBox Excelis.
Samm 1: Exceli tabeli loomine andmekogumist
Esialgu peame valmistama ette näidisandmestiku ja teisendama selle tabeliks. Selleks järgige alljärgnevaid samme.
- Kõigepealt looge andmekogum, mis sisaldab järgmist teavet 10 linna nimed ja nende Kogurahvastik kohta USA Kuni 1, juuli aastal Rakkude vahemik B5:C14 .
- Nüüd klõpsake andmekogumi mis tahes lahtril ja valige Tabel alates Sisesta vahekaart.
- Siis näete te Tabeli loomine aknas, mis valib automaatselt välja lahtrivahemiku tabeli loomiseks.
- Märkige selles aknas kontrollitud Minu tabelis on pealkirjad kasti ja vajutage OK .
- Selle tulemusena näete, et andmekogum on teisendatud tabeliks.
- Koos sellega leiate tabeli tabelist Tabeli nimi kasti all Laua kujundus vahekaart
- Võite muuta tabeli nime vastavalt oma eelistustele.
Loe edasi: Kuidas luua Excelis sõltuv rippmenüüde loetelu
Samm 2: Andmekogumi nimede nimekiri nimehaldurist
Nüüd nimetame iga kategooria lahtrite vahemiku tabelist. Selleks käi läbi sammud.
- Kõigepealt valige ükskõik milline lahter Veerg B tabelis.
- Seejärel minge Valemid vahekaart ja valige Määrake nimi .
- Pärast seda näete Uus nimi dialoogiboks.
- Selles dialoogiboksis andke valitud veeru päise järgi ükskõik milline nimi Nimi kast.
- Seejärel klõpsake nuppu Viitab kast samas aknas.
- Seejärel asetage kursor pealkirja kohale ja see näitab musta noolt.
- Pärast seda vajutage vasakule klõpsu, et valida Rakkude vahemik B5:B14 .
- Selle tulemusel näete nimede nimekirja koos tabeli nimega tabelis Viitab kasti ja vajutage OK .
- Järgige sama menetlust, et Rakkude vahemik C5:C14 samuti.
- Lõpuks näete nimesid Nimi Kast töövihiku vasakus ülanurgas.
3. samm: Loome ripploendistiku koos andmete valideerimisega
Selles etapis loome nimetatud vahemikest andmete valideerimisega ripploendi. See on oluline osa loomisest. ListBox . Me loome selle töövihiku teisel töölehel. Aga seda saab teha ka samal töölehel. Vaatame allpool protsessi.
- Alguses valige tabelist mõned lahtrid, kus soovite rakendada Andmete valideerimine .
- Seejärel minge Andmed vahekaart ja valige Andmete valideerimine aastal Andmetöötlusvahendid jagu.
- Järgnevalt on Seaded vahekaart, valige Loetelu aastal Luba kast.
- Samuti kontrollis mark Ignoreeri tühja ja Lahtrisisene rippmenüü kastid.
- Pärast seda klõpsake nuppu Allikas kasti selles aknas ja vajutage F3 klaviatuuril.
- Selle tulemusena näete te Paste Nimi dialoogiaken koos nimede nimekirjaga.
- Valige siinkohal CityNames nimekirjast ja vajutage OK .
- Seejärel näete esimese nimekirja nime, mis kuvatakse allikakastis.
- Lõpuks vajutage OK ja rakendage sama protsessi teise nimestiku puhul.
- Lõpuks näete, et Andmete valideerimine on valitud lahtrites aktiveeritud.
Samm 4: VBA-koodi sisestamine valideeritud töölehele
Nüüd tuleb oluline osa sisestada VBA kood, et luua ListBox . Järgnevalt on kirjeldatud selle protsessi.
- Kõigepealt tehke valideeritud töölehel paremklõps ja valige Vaata koodi alates Kontekstimenüü .
- Seejärel sisestage see kood lehele.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String Dim strList As String On Error Resume Next Application.EnableEvents = False Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If rngDV Is Nothing Then GoTo exitHandler If Not Intersect(Target, rngDV) Is Nothing Then If Target.Validation.Type = 3Then strList = Target.Validation.Formula1 strList = Right(strList, Len(strList) - 1) strDVList = strList frmDVList.Show End If End If exitHandler: Application.EnableEvents = True End Sub
- Järgmisena minge Sisesta vahekaart ja valige Moodul .
- Siinkohal tuleb töövihiku nimi valida töövihikusse Projekti objekt aken.
- Seejärel nimetage moodul ümber järgmiselt modSettings ja sisestage see kood.
Option Explicit Global strDVList As String
Tänu Kontekstid koodide esitamise eest.
Samm 5: Loo UserForm koos Listbox & Nupud
Selles etapis loome me UserForm töövihiku jaoks koos ListBox ja mõned Käsunupud Selleks järgige alljärgnevat protsessi.
- Kõigepealt valige töövihik Projekt-VBAProjekt aknas Visual Basic toimetaja.
- Seejärel minge Sisesta vahekaart ja valige UserForm .
- Selle tulemusena saate te UserForm selline liides.
- Koos sellega saate ka Tööriistakast aken.
- Siit lohistage ListBox et UserForm .
- Siis on ListBox näeb välja selline. Suurust saate reguleerida, lohistades kasti servi.
- Seejärel lohistage CommanButton kaks korda, et UserForm samuti luua 2 nuppu toimimiseks.
- Lõplik väljund näeb välja selline.
Samm 6: Muuda omaduste seaded
Selles etapis teeme mõned muudatused iga komponendi omadustes. ListBox .
- Alguses vajutage F4 kohta Visual Basic redaktorit, et avada Omaduste aken .
- Seejärel valige UserForm ja muuta Nimi ja Pealkiri sellest niimoodi.
- Seejärel valige ListBox ja muuta Nimi vastavalt teie eelistustele.
- Lisaks muutke tüüpi ListStyle , MultiSelect ja SpecialEffect nagu alloleval pildil.
- Nüüd valige esimene käsunupp ja tehke omadustes järgmised muudatused.
- Lisaks sellele redigeerige ka teise käsunupu omadusi.
Samm 7: VBA-koodi rakendamine UserFormile
Selles etapis kohaldame me VBA koodid igale komponendile UserForm Vaatame, kuidas see toimib.
- Kõigepealt valige UserForm ja minna Vaata vahekaart, et valida Kood .
- Seejärel sisestage see kood tühjale lehele. See käivitub automaatselt, kui UserForm on avatud.
Private Sub UserForm_Initialize() Me.lstDV.RowSource = strDVList End Sub
- Pärast seda minge tagasi UserForm liides, klõpsates Objekt kohta Vaata vahekaart.
- Nüüd järgige protsessi, et sisestada see kood jaoks OK nupp.
Private Sub cmdOK_Click() Dim strSelItems As String Dim lCountList As Long Dim strSep As String Dim strAdd As String Dim bDup As Boolean On Error Resume Next strSep = ", " With Me.lstDV For lCountList = 0 To .ListCount - 1 If .Selected(lCountList) Then strAdd = .List(lCountList) Else strAdd = "" End If If strSelItems = "" Then strSelItems = strAdd Else If strAdd "" Then strSelItems = strSelItems_ & strSep & strAdd End If End If Next lCountList End With With ActiveCell If .Value "" Then .Value = ActiveCell.Value _ & strSep & strSelItems Else .Value = strSelItems End If End With Unload Me End Sub
- Koos sellega kirjutage järgmine kood, et saada Sulge nuppu, kasutades sama protsessi.
Private Sub cmdClose_Click() Unload Me End Sub
- Lõpuks vajutage Ctrl + S salvestamiseks ja akna sulgemiseks.
Tänu Kontekstid koodidega abistamise eest.
Samm 8: Multi Select from ListBox
Lõpuks oleme edukalt loonud ListBox mitme valiku puhul. Selleks, et kontrollida, kas kood töötab või mitte, käige lihtsalt läbi järgmised sammud.
- Kõigepealt valige Raku B5 kus me kohaldasime Andmete valideerimine .
- Vahetult pärast seda on ListBox hüppab üles käskides Valige objekt nimekirjast .
- Valige selles aknas nimekirjast rohkem kui üks nimi.
- Seejärel vajutage OK .
- Lõpuks olete edukalt mitme valiku teinud alates ListBox ja iga nimi on eraldatud Koma ( , ).
Asjad, mida meeles pidada
- Nimetud vahemikud ei loo Andmete valideerimine reegel, kui need on sisestatud lahtriviidetena või eraldusmärkidega.
- The Ülemaailmne muutuja kohaldatakse nii UserForm ja Tööleht VBA kood. Iga aktiivse lahtri nimi läbib algselt koodi strDVList ajutisse vahemikku ja seejärel kasutatakse seda kui RowSource jaoks ListBox kui kasutaja avab UserForm .
- Valiku lihtsustamiseks saate kombineerida mitu vahemikku ühte nimesse.
Kokkuvõte
See on kõik tänaseks. Ma loodan, et need pikad, kuid lihtsad sammud, kuidas luua multi select ListBox excelis on teinud teema veidi lihtsamaks. Andke meile oma tagasisidet kommentaariumis teada. Jälgi ExcelWIKI rohkem selliseid artikleid.