Przejdź do głównej zawartości

Jak wybrać wiele elementów z rozwijanej listy do komórki w programie Excel?

Lista rozwijana jest często używana w codziennej pracy programu Excel. Domyślnie z listy rozwijanej można wybrać tylko jeden element. Ale czasami może być konieczne wybranie wielu elementów z rozwijanej listy do jednej komórki, jak pokazano na poniższym zrzucie ekranu. Jak sobie z tym poradzisz w programie Excel?

doc wybierz wiele pozycji z rozwijanej listy 1 strzałka doc w prawo doc wybierz wiele pozycji z rozwijanej listy 2

Wybierz wiele elementów z rozwijanej listy do komórki za pomocą VBA

Łatwo i szybko wybierz wiele elementów z rozwijanej listy do komórki


Wybierz wiele elementów z rozwijanej listy do komórki za pomocą VBA

Oto kilka VBA, które mogą Ci pomóc w rozwiązaniu tego zadania.

Wybierz zduplikowane elementy z listy rozwijanej w komórce

1. Po utworzeniu listy rozwijanej kliknij prawym przyciskiem myszy kartę arkusza, aby ją wybrać Wyświetl kod z menu kontekstowego.
doc wybierz wiele pozycji z rozwijanej listy 3

2. Następnie w Microsoft Visual Basic for Applications okno, skopiuj i wklej poniższy kod do pustego skryptu.

VBA: wybierz wiele elementów z rozwijanej listy w komórce

Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20221111
    Dim xRgVal As Range
    Dim xStrNew As String
    On Error Resume Next
    Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)
    If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub
    If Intersect(Target, xRgVal) Is Nothing Then Exit Sub
    If Target.Value = "" Then Exit Sub
    Application.EnableEvents = False
    xStrNew = Target.Value
    Application.Undo
    If xStrNew = Target.Value Then
    Else
    xStrNew = xStrNew & " " & Target.Value
    Target.Value = xStrNew
    End If
    Application.EnableEvents = True
End Sub

3. Zapisz kod i zamknij okno, aby wrócić do listy rozwijanej. Teraz możesz wybrać wiele pozycji z rozwijanej listy.

Uwaga:

1. Dzięki VBA oddziela elementy spacjami, które możesz zmienić xStrNew = xStrNew & "" & Wartość docelowa innym, aby w razie potrzeby zmienić separator. Na przykład, xStrNew = xStrNew & "," & Wartość docelowa oddzieli elementy przecinkami.

2. Ten kod VBA działa dla wszystkich list rozwijanych w arkuszu.

Wybierz wiele elementów z listy rozwijanej do komórki bez powtarzania

Jeśli chcesz tylko wybrać unikalne elementy z rozwijanej listy do komórki, możesz powtórzyć powyższe kroki i użyć poniższego kodu.

VBA : Wybierz wiele elementów z listy rozwijanej do komórki bez powtarzania

Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20221111
    Dim I As Integer
    Dim xRgVal As Range
    Dim xStrNew As String
    Dim xStrOld As String
    Dim xFlag As Boolean
    Dim xArr
    On Error Resume Next
    Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)
    If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub
    If Intersect(Target, xRgVal) Is Nothing Then Exit Sub
    If Target.Value = "" Then Exit Sub
    Application.EnableEvents = False
    xFlag = True
    xStrNew = " " & Target.Value & " "
    Application.Undo
    xStrOld = Target.Value
    If InStr(1, xStrOld, xStrNew) = 0 Then
        xStrNew = xStrNew & xStrOld & " "
    Else
        xStrNew = xStrOld
    End If
    Target.Value = xStrNew
    Application.EnableEvents = True
End Sub

Oba powyższe kody VBA nie obsługują usuwania części zawartości komórki, obsługują tylko usuwanie wszystkich elementów komórki.


Łatwo i szybko wybierz wiele elementów z rozwijanej listy do komórki

W Excelu, z wyjątkiem kodu VBA, nie ma innych sposobów na zezwolenie na wiele elementów wybranych z listy rozwijanej w komórce. Jednakże Lista rozwijana wielokrotnego wyboru cechą Kutools dla programu Excel może szybko i łatwo obsłużyć to zadanie za pomocą kliknięć.

Wskazówka: Przed zastosowaniem tego narzędzia najpierw zainstaluj Kutools dla Excela. Przejdź do bezpłatnego pobierania teraz.
Krok 1: Wybierz Kutools > Lista rozwijana > Lista rozwijana wielokrotnego wyboru
Krok 2: W oknie dialogowym Lista rozwijana wielokrotnego wyboru określ ustawienia
  1. Ustaw zakres;
  2. Określ separator dla elementów rozdzielających w komórce;
  3. Zdecyduj kierunek tekstu;
  4. Kliknij przycisk OK.
    doc wybierz wiele elementów z rozwijanej listy kte 1
Wynik:

wybierz wiele elementów z rozwijanej listy kutools

Note: Aby korzystać z funkcji listy rozwijanej wielokrotnego wyboru, należy najpierw zainstalować Kutools dla programu Excel kliknij, aby pobrać i skorzystać z 30-dniowej bezpłatnej wersji próbnej.

Z łatwością utwórz dynamiczną listę rozwijaną zależną od 2 lub wielu poziomów w programie Excel

W programie Excel utworzenie 2-poziomowej lub wielopoziomowej listy rozwijanej jest skomplikowane. Tutaj Dynamiczna lista rozwijana użyteczność Kutools dla programu Excel może zrobić ci przysługę. Jedyne, co musisz zrobić, to uporządkować dane zgodnie z przykładem, a następnie wybrać zakres danych i zakres wyjściowy, a następnie pozostawić to narzędziu.  Kliknij na 30-dniowy bezpłatny okres próbny!
doc zaawansowane łączenie wierszy
 
Kutools dla programu Excel: z ponad 300 poręcznymi dodatkami do Excela, możesz wypróbować bez ograniczeń w 30 dniach.

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


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!
Comments (26)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Como posso utilizar a função com a planilha bloqueada?
This comment was minimized by the moderator on the site
Hi, Macros, try below code, it supports to select multi items in drop down list in protected sheet.
Private Sub Worksheet_Change(ByVal Target As Range)
'UpdatebyExtendoffice20221111
    Dim xRgVal As Range
    Dim xStrNew As String
    On Error Resume Next  
    xType = 0
    xType = Target.Validation.Type
    If xType <> 3 Then Exit Sub
    If (Target.Count > 1) Then Exit Sub

    If Target.Value = "" Then Exit Sub
    Application.EnableEvents = False
    xStrNew = Target.Value
    Application.Undo
    If xStrNew = Target.Value Then
    Else
    xStrNew = xStrNew & " " & Target.Value
    Target.Value = xStrNew
    End If
    Application.EnableEvents = True
End Sub

And also Kutools for Excel 26.1 and later versions supports this job in protected sheet.
This comment was minimized by the moderator on the site
¿Cómo puedo hacer para que el orden en que se coloque el texto, sea tan cuál como yo quiera?

Ejemplo:
Mi texto para la lista es:
TRAMITAR ESTE ASUNTO
COORDINAR
ANALIZAR Y RECOMENDAR

sí selecciono:
TRAMITAR ESTE ASUNTO
ANALIZAR Y RECOMENDAR

me aparece
ANALIZAR Y RECOMENDAR, TRAMITAR ESTE ASUNTO

o sea, los de abajo me aparecen primero, pero quiero que sea en el orden en que voy seleccionando...
TRAMITAR ESTE ASUNTO, ANALIZAR Y RECOMENDAR.....
This comment was minimized by the moderator on the site
Hi, Gorgelys, Kutools's multi-select drop down list can help you. The items you selected will be in the order like you want.
This comment was minimized by the moderator on the site
the code works but won't let me delete can someone please post the new code.
This comment was minimized by the moderator on the site
bonjour,
selon le premier exemple tout fonctionne très bien jusqu'à ce que je verrouille la feuille.
quand la feuille est verrouillée, je n'ai plus le choix multiple !
comment faire ?
merci par avance
This comment was minimized by the moderator on the site
Hi, sorry for that. We will upgrade our feature next version to avoid this problem. Thank you for your feekback.
This comment was minimized by the moderator on the site
Merci bcp
Mais à quand la nouvelle version ?
This comment was minimized by the moderator on the site
Hi, we have updated this version for you, but this is a beta version, please download it from this: https://download.extendoffice.com/downloads/Kutools-for-Excel/beta/26.10/KutoolsforExcelSetup.Inno.exe
If there are any problems, welcome for your feedback.
This comment was minimized by the moderator on the site
Merci,
Je vais la télécharger et essayer.
Bonne journée
This comment was minimized by the moderator on the site
Hi, the new version is in planning, since next version will upgrade multiple features, it may take somewhat time.
This comment was minimized by the moderator on the site
Hi! Como puedo usar este codigo para todo un worksheet y no solo para una pestana?
This comment was minimized by the moderator on the site
Hi, Vero, Kutools for Excel's Multi-select Drop-down List feature suports selecting multiple items from drop down list in the whole worksheet or across workbook, just specify the Specified Scope in the Multi-select Drop-down List Settings dialog.
This comment was minimized by the moderator on the site
How can I do that for the fist formula you provided :) Thanks in advanced!
This comment was minimized by the moderator on the site
Quando quero deletar alguma opção ou todas dá erro. Como posso resolver?
This comment was minimized by the moderator on the site
I am also finding that after selecting multiple items using the updated VBA code, I still cannot clear the cell, it just keeps multiplying.
Does anyone have a solution for this yet?
This comment was minimized by the moderator on the site
Hi, Rusty, the code I have updated for making it more stable. But because the cell is in data validation, blank is out of data validation, the code cannot solve this problem.
This comment was minimized by the moderator on the site
the code works but carries over across all cells and multiplies in the cells and wont allow delete can you assist?
This comment was minimized by the moderator on the site
If I create a sheet with dropdown list using checkboxes, is there a way to share this workbook with this checkboxes feature?
This comment was minimized by the moderator on the site
How would you apply this functionality but making it so that there aren't redundant values? Any help would be appreciated!
This comment was minimized by the moderator on the site
I used this "Select multiple items from drop down list to a cell without repeat"
this is what happened
1. Multiple selections happen without problems.
2. The issue is when i try to edit and remove an option. There is no way for me to remove an option. it keeps multiplying.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations