Jak utworzyć listę rozwijaną z wieloma wyborami lub wartościami w programie Excel?
Domyślnie możesz wybrać tylko jeden element z listy rozwijanej sprawdzania poprawności danych w programie Excel. Jak dokonać wielu wyborów z rozwijanej listy, jak pokazano poniżej? Metody opisane w tym artykule mogą pomóc w rozwiązaniu problemu.
Więcej samouczka dla rozwijanej listy ...
Utwórz listę rozwijaną z wieloma opcjami z kodem VBA
Ta sekcja zawiera dwa kody VBA, które ułatwiają dokonywanie wielu wyborów na listach rozwijanych w arkuszu. Dwa kody VBA mogą osiągnąć:
Możesz zastosować jeden z następujących kodów VBA, aby dokonać wielu wyborów na liście rozwijanej w arkuszu kalkulacyjnym w programie Excel. Proszę wykonać następujące czynności.
1. Otwórz arkusz roboczy zawierający listy rozwijane sprawdzania poprawności danych, z których chcesz dokonać wielu wyborów. Kliknij prawym przyciskiem myszy kartę arkusza i wybierz Wyświetl kod z menu kontekstowego.
2. w Microsoft Visual Basic for Applications skopiuj poniższy kod VBA do okna kodu. Zobacz zrzut ekranu:
Kod VBA 1: Zezwalaj na wiele wyborów z listy rozwijanej bez duplikatów
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2019/11/13
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
If Target.Count > 1 Then Exit Sub
On Error Resume Next
Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
If xRng Is Nothing Then Exit Sub
Application.EnableEvents = False
If Not Application.Intersect(Target, xRng) Is Nothing Then
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" Then
If xValue2 <> "" Then
If xValue1 = xValue2 Or _
InStr(1, xValue1, ", " & xValue2) Or _
InStr(1, xValue1, xValue2 & ",") Then
Target.Value = xValue1
Else
Target.Value = xValue1 & ", " & xValue2
End If
End If
End If
End If
Application.EnableEvents = True
End Sub
3. wciśnij inny + Q klucze do zamknięcia Microsoft Visual Basic for Applications okno.
Teraz możesz wybrać wiele elementów z listy rozwijanej w bieżącym arkuszu.
Przypuśćmy, że przypadkowo wybrałeś element i musisz go usunąć bez czyszczenia całej komórki i rozpoczynania od nowa. Poniższy kod VBA 2 może ci wyświadczyć przysługę.
Kod VBA 2: Zezwalaj na wiele wyborów na liście rozwijanej bez duplikatów (usuń istniejące elementy, wybierając je ponownie)
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2023/01/11
'Updated by Ken Gardner 2022/07/11
Dim xRng As Range
Dim xValue1 As String
Dim xValue2 As String
Dim semiColonCnt As Integer
Dim xType As Integer
If Target.Count > 1 Then Exit Sub
On Error Resume Next
xType = 0
xType = Target.Validation.Type
If xType = 3 Then
Application.ScreenUpdating = False
Application.EnableEvents = False
xValue2 = Target.Value
Application.Undo
xValue1 = Target.Value
Target.Value = xValue2
If xValue1 <> "" Then
If xValue2 <> "" Then
If xValue1 = xValue2 Or xValue1 = xValue2 & ";" Or xValue1 = xValue2 & "; " Then ' leave the value if only one in list
xValue1 = Replace(xValue1, "; ", "")
xValue1 = Replace(xValue1, ";", "")
Target.Value = xValue1
ElseIf InStr(1, xValue1, "; " & xValue2) Then
xValue1 = Replace(xValue1, xValue2, "") ' removes existing value from the list on repeat selection
Target.Value = xValue1
ElseIf InStr(1, xValue1, xValue2 & ";") Then
xValue1 = Replace(xValue1, xValue2, "")
Target.Value = xValue1
Else
Target.Value = xValue1 & "; " & xValue2
End If
Target.Value = Replace(Target.Value, ";;", ";")
Target.Value = Replace(Target.Value, "; ;", ";")
If Target.Value <> "" Then
If Right(Target.Value, 2) = "; " Then
Target.Value = Left(Target.Value, Len(Target.Value) - 2)
End If
End If
If InStr(1, Target.Value, "; ") = 1 Then ' check for ; as first character and remove it
Target.Value = Replace(Target.Value, "; ", "", 1, 1)
End If
If InStr(1, Target.Value, ";") = 1 Then
Target.Value = Replace(Target.Value, ";", "", 1, 1)
End If
semiColonCnt = 0
For i = 1 To Len(Target.Value)
If InStr(i, Target.Value, ";") Then
semiColonCnt = semiColonCnt + 1
End If
Next i
If semiColonCnt = 1 Then ' remove ; if last character
Target.Value = Replace(Target.Value, "; ", "")
Target.Value = Replace(Target.Value, ";", "")
End If
End If
End If
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
Uwagi:
Z łatwością twórz rozwijaną listę z wieloma opcjami za pomocą niesamowitego narzędzia
Tutaj gorąco polecamy Lista rozwijana wielokrotnego wyboru cechą Kutools dla programu Excel dla Was. Dzięki tej funkcji możesz łatwo wybrać wiele elementów z listy rozwijanej w określonym zakresie, bieżącym arkuszu, bieżącym skoroszycie lub wszystkich otwartych skoroszytach, zgodnie z potrzebami.
Przed złożeniem wniosku Kutools dla programu ExcelProszę pobierz i zainstaluj najpierw.
1. kliknij Kutools > Lista rozwijana > Lista rozwijana wielokrotnego wyboru > Ustawienia. Zobacz zrzut ekranu:
2. w Ustawienia listy rozwijanej wielokrotnego wyboru okno dialogowe, skonfiguruj w następujący sposób.
- 2.1) Określ zakres stosowania w Stosuje się do Sekcja. W tym przypadku wybieram Bieżący arkusz roboczy z Określony zakres Lista rozwijana;
- 2.2) W Kierunek tekstu sekcja, wybierz kierunek tekstu w zależności od potrzeb;
- 2.3) W Separator wprowadź separator, którego będziesz używać do oddzielania wielu wartości;
- 2.4) Sprawdź Nie dodawaj duplikatów Okno w Opcje sekcja, jeśli nie chcesz tworzyć duplikatów w komórkach listy rozwijanej;
- 2.5) Kliknij OK przycisk. Zobacz zrzut ekranu:
3. Proszę kliknąć Kutools > Lista rozwijana > Lista rozwijana wielokrotnego wyboru aby włączyć tę funkcję.
Teraz możesz wybrać wiele elementów z listy rozwijanej w bieżącym arkuszu lub dowolnym zakresie określonym w kroku 2.
Jeśli chcesz skorzystać z bezpłatnego okresu próbnego (30-dzień) tego narzędzia, kliknij, aby go pobrać, a następnie przejdź do wykonania operacji zgodnie z powyższymi krokami.
Podobne artykuły:
Autouzupełnianie podczas pisania w rozwijanej liście programu Excel
Jeśli masz listę rozwijaną do sprawdzania poprawności danych z dużymi wartościami, musisz przewinąć listę tylko po to, aby znaleźć właściwą, lub wpisać całe słowo bezpośrednio w polu listy. Jeśli istnieje metoda pozwalająca na automatyczne uzupełnianie podczas wpisywania pierwszej litery z rozwijanej listy, wszystko stanie się łatwiejsze. W tym samouczku przedstawiono metodę rozwiązania problemu.
Utwórz listę rozwijaną z innego skoroszytu w programie Excel
Utworzenie listy rozwijanej sprawdzania poprawności danych w arkuszach roboczych w skoroszycie jest dość łatwe. Ale jeśli lista danych potrzebnych do weryfikacji danych znajduje się w innym skoroszycie, co byś zrobił? W tym samouczku dowiesz się, jak szczegółowo utworzyć listę rozwijaną z innego skoroszytu w programie Excel.
Utwórz listę rozwijaną z możliwością wyszukiwania w programie Excel
W przypadku listy rozwijanej z wieloma wartościami znalezienie odpowiedniej nie jest łatwą pracą. Wcześniej wprowadziliśmy metodę automatycznego uzupełniania listy rozwijanej po wpisaniu pierwszej litery w rozwijanym polu. Oprócz funkcji autouzupełniania, możesz również umożliwić przeszukiwanie listy rozwijanej, aby zwiększyć wydajność pracy w znajdowaniu odpowiednich wartości na liście rozwijanej. Aby umożliwić przeszukiwanie listy rozwijanej, wypróbuj metodę opisaną w tym samouczku.
Automatycznie wypełniaj inne komórki podczas wybierania wartości na liście rozwijanej programu Excel
Załóżmy, że utworzyłeś listę rozwijaną na podstawie wartości w zakresie komórek B8: B14. Po wybraniu dowolnej wartości z listy rozwijanej chcesz, aby odpowiednie wartości w zakresie komórek C8: C14 były automatycznie wypełniane w wybranej komórce. Aby rozwiązać problem, skorzystaj z metod przedstawionych w tym samouczku.
Najlepsze narzędzia biurowe
Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%
- Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
- Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
- Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
- Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
- Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
- Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
- Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
- Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
- Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2021 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowa bezpłatna wersja próbna. 60-dniowa gwarancja zwrotu pieniędzy.

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
































