Spis treści
Kiedy pracujemy na dużym zbiorze danych, często trudno jest pobrać z niego jakąś selektywną wartość. Ponadto nie można wybrać więcej niż wielu informacji jednocześnie.W tym przypadku, ListBox jest bardzo pomocnym rozwiązaniem w Excel Ale proces tworzenia tego ListBox Dlatego w tym artykule dowiemy się, jak stworzyć multi-selekcję ListBox w excelu za pomocą kilku prostych kroków.
Pobierz Zeszyt ćwiczeń
Pobierz przykładowy plik do ćwiczenia.
Multi Select ListBox.xlsmProcedury krok po kroku do tworzenia Multi Select ListBox w Excelu
Aby ułatwić ten proces, podzieliliśmy go na 8 Tak więc, bez dalszej zwłoki, przejdźmy do poniższych kroków, aby zobaczyć, jak możemy stworzyć multi-selekcję ListBox w Excelu.
Krok 1: Tworzenie tabeli Excela z zestawu danych
Na początku musimy przygotować przykładowy zbiór danych i przekonwertować go na tabelę. Aby to zrobić, wykonaj poniższe kroki.
- Najpierw utwórz zbiór danych zawierający informacje o. 10 Nazwy miast i ich Ludność ogółem z USA do 1, lipiec w Zakres komórek B5:C14 .
- Teraz należy kliknąć na dowolną komórkę zbioru danych i wybrać Tabela od Wkładka tab.
- Wtedy zobaczysz Utwórz tabelę okno, które automatycznie wybiera zakres komórek do utworzenia tabeli.
- W tym oknie należy zaznaczyć Moja tabela ma nagłówki pole i naciśnij OK .
- W rezultacie zobaczysz, że zbiór danych jest konwertowany na tabelę.
- Wraz z nim można znaleźć tabelę w. Nazwa tabeli pole pod Projekt tabeli zakładka
- Możesz zmienić nazwę tabeli zgodnie ze swoimi preferencjami.
Czytaj więcej: Jak stworzyć zależną listę rozwijaną w Excelu
Krok 2: Nazwij listę zbiorów danych z Name Manager
Teraz nazwiemy każdą kategorię zakresu komórek z tabeli, w tym celu przejdź przez kroki.
- Najpierw należy wybrać dowolną komórkę z Kolumna B w tabeli.
- Następnie przejdź do Formuły zakładka i wybrać Określenie nazwy .
- Po tym, zobaczysz Nowa nazwa okno dialogowe.
- W tym oknie dialogowym podaj dowolną nazwę zgodnie z wybranym nagłówkiem kolumny w Nazwa pudełko.
- Następnie należy kliknąć na Dotyczy w tym samym oknie.
- Następnie umieść kursor nad nagłówkiem, a pokaże się czarna strzałka.
- Następnie kliknij lewym przyciskiem myszy, aby wybrać Zakres komórek B5:B14 .
- W rezultacie zobaczysz listę nazw wraz z nazwą tabeli w Dotyczy pole i naciśnij OK .
- Postępuj w ten sam sposób, dla Zakres komórek C5:C14 również.
- Na koniec zobaczysz nazwy w Nazwa Pole w lewym górnym rogu skoroszytu.
Krok 3: Utwórz listę rozwijaną z walidacją danych
Na tym etapie utworzymy listę rozwijaną z nazwanych zakresów z walidacją danych.Jest to zasadnicza część tworzenia ListBox Utworzymy to w innym arkuszu w skoroszycie, ale można to zrobić również w tym samym arkuszu. Zobaczmy proces poniżej.
- Na początku wybierz kilka komórek z tabeli, w których chcesz zastosować Walidacja danych .
- Następnie przejdź do Dane zakładka i wybrać Walidacja danych w Narzędzia danych sekcja.
- Następnie, w Ustawienia zakładka, wybierz Wykaz w Pozwól pudełko.
- Ponadto, Mark sprawdził Zignoruj puste miejsce oraz Rozwijanie w komórce skrzynie.
- Następnie należy kliknąć na Źródło F3 na swojej klawiaturze.
- W rezultacie zobaczysz Nazwa pasty okno dialogowe z listą nazw.
- Tutaj należy wybrać CityNames z listy i naciśnij OK .
- Wtedy zobaczysz, że w polu źródła pojawi się nazwa pierwszej listy.
- Na koniec naciśnij OK i zastosuj ten sam proces dla drugiej listy nazwisk.
- W końcu zobaczysz, że Walidacja danych jest aktywowana na wybranych komórkach.
Krok 4: Wstaw kod VBA do zatwierdzonego arkusza
Teraz nadchodzi kluczowa część wstawiania VBA kod, aby stworzyć ListBox . Following is the process for this.
- Najpierw kliknij prawym przyciskiem myszy na zatwierdzonym arkuszu i wybierz Wyświetl kod od Menu kontekstowe .
- Następnie wstaw na stronę ten kod.
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
- Następnie należy przejść do Wkładka zakładka i wybrać Moduł .
- W tym momencie nazwa skoroszytu musi być wybrana w Przedmiot projektu okno.
- Następnie zmień nazwę modułu na modSettings i wstawić ten kod.
Option Explicit Global strDVList As String
Dzięki Konteksty za udostępnienie kodów.
Krok 5: Utwórz formularz użytkownika z listbox & Buttons
Na tym etapie utworzymy UserForm dla skoroszytu wraz z ListBox i trochę Przyciski poleceń W tym celu należy wykonać poniższą procedurę.
- Najpierw należy wybrać skoroszyt w Projekt-VBAProjekt okno w Visual Basic red.
- Następnie przejdź do Wkładka zakładka i wybrać UserForm .
- W rezultacie otrzymasz. UserForm interfejs jak to.
- Wraz z tym, otrzymasz również Skrzynka narzędziowa okno.
- Stąd przeciągnij ListBox do UserForm .
- Następnie. ListBox Możesz dostosować rozmiar przeciągając krawędzie pudełka.
- Następnie przeciągnij CommanButton dwukrotnie do UserForm jak również do stworzenia 2 przycisków do obsługi.
- Wreszcie, ostateczne wyjście wygląda tak.
Krok 6: Zmiana ustawień właściwości
W tym etapie dokonamy kilku zmian we właściwościach każdego z komponentów ListBox .
- Na początku naciśnij F4 na Visual Basic edytor, aby otworzyć Okno właściwości .
- Następnie należy wybrać UserForm i zmienić Nazwa oraz Caption w ten sposób.
- Następnie należy wybrać ListBox i zmienić Nazwa zgodnie z Twoimi preferencjami.
- Dodatkowo należy zmienić typ ListStyle , MultiSelect oraz SpecialEffect zgodnie z poniższym obrazkiem.
- Teraz wybierz pierwszy przycisk polecenia i wprowadź następujące zmiany we właściwościach.
- Oprócz tego edytuj również właściwości drugiego przycisku polecenia.
Krok 7: Zastosuj kod VBA do formularza użytkownika
Na tym etapie zastosujemy VBA kody do każdego z elementów składowych UserForm Zobaczmy, jak to działa.
- Najpierw należy wybrać UserForm i udać się do Zobacz zakładka, aby wybrać Kod .
- Następnie wstaw ten kod na pustą stronę. Będzie on automatycznie uruchamiany, gdy UserForm jest otwarty.
Private Sub UserForm_Initialize() Me.lstDV.RowSource = strDVList End Sub
- Po tym, wróć do UserForm klikając na Obiekt na Zobacz tab.
- Teraz postępuj zgodnie z procesem, aby wstawić ten kod dla OK przycisk.
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 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.
- Wraz z tym, wpisz ten kod dla Zamknij z wykorzystaniem tego samego procesu.
Private Sub cmdClose_Click() Unload Me End Sub
- Na koniec naciśnij Ctrl + S aby go zapisać i zamknąć okno.
Dzięki Konteksty za pomoc z kodami.
Krok 8: Multi Select z ListBox
W końcu udało nam się stworzyć ListBox Aby sprawdzić, czy kod działa, czy nie, wystarczy przejść przez następujące kroki.
- Najpierw należy wybrać Komórka B5 gdzie zastosowaliśmy Walidacja danych .
- Zaraz po tym ListBox pojawi się rozkaz Wybierz pozycję z listy .
- W tym oknie wybierz więcej niż jedną nazwę z listy.
- Następnie naciśnij OK .
- Wreszcie, udało się wybrać wiele opcji z ListBox a każda nazwa jest oddzielona znakiem Przecinek ( , ).
Rzeczy do zapamiętania
- Nazwane zakresy nie stworzy Walidacja danych reguła, jeśli są one wprowadzone jako odwołania do komórek lub z ogranicznikami.
- Na stronie Zmienna globalna jest stosowany zarówno dla UserForm oraz Arkusz roboczy VBA Każda aktywna nazwa komórki początkowo przekazuje kod strDVList do tymczasowego zakresu, a następnie jest używany jako RowSource dla ListBox gdy użytkownik otworzy UserForm .
- Możesz połączyć wiele zakresów w jednej nazwie dla ułatwienia wyboru.
Wniosek
To wszystko na dziś, mam nadzieję, że te długie, ale proste kroki jak utwórz ListBox z możliwością wielokrotnego wyboru w excelu nieco ułatwiły Ci temat.Daj nam znać o swoich opiniach w polu komentarza.Śledź ExcelWIKI po więcej artykułów takich jak ten.