Note: The other languages of the website are Google-translated. Back to English

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

Wybierz wiele elementów z rozwijanej listy do komórki za pomocą przydatnej opcji Kutools dla programu Excel


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.


Wybierz wiele elementów z rozwijanej listy do komórki za pomocą przydatnej opcji Kutools dla programu Excel

Jeśli nie znasz kodu VBA, możesz Darmowa instalacja poręczne narzędzie - Kutools dla programu Excel, który zawiera grupę narzędzi o rozwijanej liście i jest opcja Lista rozwijana wielokrotnego wyboru może pomóc w łatwym wybraniu wielu elementów z listy rozwijanej do komórki.

Po utworzeniu listy rozwijanej wybierz komórki listy rozwijanej i kliknij Kutools > Lista rozwijana > Lista rozwijana wielokrotnego wyboru aby włączyć to narzędzie.
doc kutools lista rozwijana wyboru wielu 1

Następnie wybrane komórki listy rozwijanej można wybrać wiele elementów do komórki.

Jeśli użyjesz tej opcji po raz pierwszy, możesz określić ustawienia tego narzędzia zgodnie z potrzebami przed zastosowaniem tego narzędzia.

Kliknij Kutools > Lista rozwijana > strzałka obok Lista rozwijana wielokrotnego wyboru > Ustawienia.
doc kutools lista rozwijana wyboru wielu 2

Następnie w Ustawienia listy rozwijanej wielokrotnego wyboru możesz

1) Określ zakres stosowania według potrzeb;

2) Określ kierunek umieszczania przedmiotów;

3) Określ separator między elementami;

4) Określ, czy nie dodawać duplikatów i usuwać zduplikowane elementy.

Kliknij Ok i kliknij Kutools > Lista rozwijana > Lista rozwijana wielokrotnego wyboru aby to odniosło skutek.

Wskazówka: Aby zastosować Lista rozwijana wielokrotnego wyboru narzędzie, musisz zainstalować to na początku. Jeśli chcesz utworzyć listę rozwijaną z wieloma poziomami, poniższe narzędzie może Ci pomóc.

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, aby 30 dni bezpłatnego okresu próbnego!
doc zaawansowane łączenie wierszy
 
Kutools dla programu Excel: z ponad 300 przydatnymi dodatkami do programu Excel, które można bezpłatnie wypróbować bez ograniczeń 30 dni.

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 kte 201905

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!
officetab dół
Sortuj komentarze według
Komentarze (26)
Brak ocen. Oceń jako pierwszy!
Ten komentarz został zminimalizowany przez moderatora na stronie
Po dodaniu dane z listy rozwijanej nie działają.
Ten komentarz został zminimalizowany przez moderatora na stronie
Znalazłem ten sam problem. Myślę, że znalazłem sposób, aby to przezwyciężyć. Na dole kodu zobaczysz kod „xStrNew = xStrOld”. Zamiast tego niech mówi xStrNew = " "

Mi to pasuje.
Ten komentarz został zminimalizowany przez moderatora na stronie
Czy nadal masz ten kod? Próbuję zrobić to, co powiedziałeś, ale tekst nadal się powtarza.
Podziękowania
Ten komentarz został zminimalizowany przez moderatora na stronie
Przepraszam, ale nie. Jednak właśnie spojrzałem na powyższy kod i wygląda na to, że autor zmodyfikował kod z moją sugestią.

opublikuj swój problem w głównym wątku tego artykułu.
Ten komentarz został zminimalizowany przez moderatora na stronie
w pierwszym kodzie dodaj następującą linię między wierszami 6 i 7 (10-11 w drugim kodzie): Jeśli Target.Value = "" Następnie wyjdź z Sub
Ten komentarz został zminimalizowany przez moderatora na stronie
Użyłem tego „Wybierz wiele elementów z listy rozwijanej do komórki bez powtarzania”
To jest to, co się stało
1. Wiele wyborów odbywa się bez problemów.
2. Problem polega na tym, że próbuję edytować i usuwać opcję. Nie ma możliwości usunięcia opcji. ciągle się mnoży.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak zastosować tę funkcję, ale sprawić, by nie było zbędnych wartości? Każda pomoc byłaby mile widziana!
Ten komentarz został zminimalizowany przez moderatora na stronie
Jeśli utworzę arkusz z listą rozwijaną za pomocą pól wyboru, czy istnieje sposób udostępnienia tego skoroszytu za pomocą tej funkcji pól wyboru?
Ten komentarz został zminimalizowany przez moderatora na stronie
Odkryłem również, że po wybraniu wielu elementów przy użyciu zaktualizowanego kodu VBA nadal nie mogę wyczyścić komórki, po prostu się mnoży.
Czy ktoś ma już na to rozwiązanie?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Rusty, zaktualizowałem kod, aby był bardziej stabilny. Ale ponieważ komórka jest w trakcie sprawdzania poprawności danych, puste pole jest poza sprawdzaniem poprawności danych, kod nie może rozwiązać tego problemu.
Ten komentarz został zminimalizowany przez moderatora na stronie
kod działa, ale przenosi się na wszystkie komórki i mnoży się w komórkach i nie pozwala na usunięcie, czy możesz pomóc?
Ten komentarz został zminimalizowany przez moderatora na stronie
Quando quero deletar alguma opção ou todas dá erro. Przelicznik Como posso?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć! Como puedo usar este codigo para todo un arkusz y no solo para una pestana?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Vero, Kutools dla funkcji listy rozwijanej wielokrotnego wyboru programu Excel obsługuje wybieranie wielu elementów z listy rozwijanej w całym arkuszu lub w skoroszycie, wystarczy określić określony zakres w oknie dialogowym Ustawienia listy rozwijanej wielokrotnego wyboru.
Ten komentarz został zminimalizowany przez moderatora na stronie
Jak mogę to zrobić dla pierwszej formuły, którą podałeś :) Z góry dziękuję!
Ten komentarz został zminimalizowany przez moderatora na stronie
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 !
w jaki sposób?
z góry dzięki
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, przepraszam za to. Zaktualizujemy naszą funkcję w następnej wersji, aby uniknąć tego problemu. Dziękuję za informację zwrotną.
Ten komentarz został zminimalizowany przez moderatora na stronie
bcp dziękuję
Mais à quand la nouvelle wersja ?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, nowa wersja jest w planach, ponieważ następna wersja zaktualizuje wiele funkcji, może to zająć trochę czasu.
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, zaktualizowaliśmy tę wersję dla Ciebie, ale jest to wersja beta, pobierz ją z tego: https://download.extendoffice.com/downloads/Kutools-for-Excel/beta/26.10/KutoolsforExcelSetup.Inno.exe
Jeśli pojawią się jakieś problemy, zapraszamy do przesyłania opinii.
Ten komentarz został zminimalizowany przez moderatora na stronie
Dzięki,
Je vais la télécharger et eseer.
Bonne Journée
Ten komentarz został zminimalizowany przez moderatora na stronie
kod działa, ale nie pozwala mi go usunąć, czy ktoś może opublikuj nowy kod.
Ten komentarz został zminimalizowany przez moderatora na stronie
¿Cómo puedo hacer para que el orden en que se coloque el texto, sea tan cuál como yo quiera?

przykład:
Mi texto para la lista es:
TRAMITAR ESTE ASUNTO
KOORDYNATOR
ANALIZATOR I REKOMENDARZ

wybór:
TRAMITAR ESTE ASUNTO
ANALIZATOR I REKOMENDARZ

Wydaje mi się
ANALIZAR Y RECOMENDAR, TRAMITAR ESTE ASUNTO

o morze, los de abajo me aparecen primero, pero quiero que sea en el orden en que voy seleccionando...
TRAMITAR ESTE ASUNTO, ANALIZAR Y RECOMENDAR.....
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, Gorgelys, lista rozwijana wielokrotnego wyboru Kutools może ci pomóc. Wybrane elementy będą ułożone w żądanej kolejności.
Ten komentarz został zminimalizowany przez moderatora na stronie
Como posso utilizar a função com a planilha bloqueada?
Ten komentarz został zminimalizowany przez moderatora na stronie
Cześć, makra, wypróbuj poniższy kod, obsługuje wybieranie wielu elementów z rozwijanej listy w chronionym arkuszu.
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

A także Kutools dla programu Excel 26.1 i nowsze wersje obsługują to zadanie w chronionym arkuszu.
Nie ma tu jeszcze żadnych komentarzy
Zostaw swój komentarz
Publikowanie jako gość
×
Oceń ten post:
0   Postacie
Sugerowane lokalizacje

Bądż na bieżąco

Prawa autorskie © 2009 - www.extendoffice.com. | Wszelkie prawa zastrzeżone. Zasilany przez ExtendOffice, | Mapa strony
Microsoft i logo Office są znakami towarowymi lub zastrzeżonymi znakami towarowymi Microsoft Corporation w Stanach Zjednoczonych i / lub innych krajach.
Chronione przez Sectigo SSL