Przejdź do głównej zawartości

Jak zsynchronizować listy rozwijane w wielu arkuszach roboczych w programie Excel?

Autor: Silvia Ostatnia modyfikacja: 2024-12-05

Załóżmy, że masz listy rozwijane w kilku arkuszach roboczych w skoroszycie, które zawierają dokładnie te same elementy rozwijane. Teraz chcesz zsynchronizować listy rozwijane w arkuszach roboczych, aby po wybraniu elementu z listy rozwijanej w jednym arkuszu, listy rozwijane w innych arkuszach były automatycznie synchronizowane z tym samym wyborem. Ten artykuł zawiera kod VBA, który pomoże Ci rozwiązać ten problem.

Synchronizuj listy rozwijane w wielu arkuszach roboczych z kodem VBA


Synchronizuj listy rozwijane w wielu arkuszach roboczych z kodem VBA

Na przykład listy rozwijane znajdują się w pięciu arkuszach o nazwie Arkusz1, Arkusz2, ... Arkusz5, aby zsynchronizować listy rozwijane w innych arkuszach roboczych zgodnie z wyborem rozwijanym w Arkuszu1, zastosuj następujący kod VBA, aby to zrobić.

1. Otwórz Arkusz1, kliknij prawym przyciskiem myszy kartę arkusza i wybierz Wyświetl kod z menu prawego przycisku myszy.

Zrzut ekranu pokazujący menu prawego przycisku myszy na Arkuszu1 umożliwiające wyświetlenie kodu w programie Excel

2. w Microsoft Visual Basic for Applications okno, wklej następujący kod VBA do Arkusz1 (Kod) okno.

Zrzut ekranu przedstawiający okno Microsoft Visual Basic for Applications, w którym wklejono kod VBA w programie Excel

Kod VBA: Synchronizuj listę rozwijaną w wielu arkuszach roboczych

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220815
    Dim tSheet1 As Worksheet
    Dim tRange As Range
    Dim xRangeStr As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr = "A2:A11"

    Set tRange = Intersect(Target, Range(xRangeStr))
    If Not tRange Is Nothing Then
        xRangeStr = tRange.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet2")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet3")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet4")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Application.EnableEvents = True
    End If
    
End Sub

Uwagi:

1) W kodzie, A2: A11 to zakres zawierający listę rozwijaną. Upewnij się, że wszystkie listy rozwijane znajdują się w tym samym zakresie w różnych arkuszach.
2) Arkusz2, Arkusz3, Arkusz4 i Sheet5 to arkusze zawierające listy rozwijane, które chcesz zsynchronizować na podstawie listy rozwijanej w Arkuszu1;
3) Aby dodać więcej arkuszy do kodu, dodaj następujące dwa wiersze przed wierszem „Application.EnableEvents = True”, a następnie zmień nazwę arkusza „Sheet5” na wybraną nazwę.
Ustaw tSheet1 = ActiveWorkbook.Worksheets("Arkusz5")
tSheet1.Range(xRangeStr).Value = Wartość docelowa

3. wciśnij inny + Q klucze do zamknięcia Microsoft Visual Basic for Applications okno.

Od teraz, po wybraniu elementu z rozwijanej listy w Arkusz1, listy rozwijane w określonych arkuszach roboczych zostaną zsynchronizowane automatycznie, aby mieć ten sam wybór. Zobacz poniższe demo.

GIF pokazujący, jak listy rozwijane są synchronizowane w arkuszach kalkulacyjnych po wybraniu elementu w programie Excel


Demo: Synchronizuj listy rozwijane w wielu arkuszach roboczych w programie Excel

 

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
Używaj Kutools w swoim preferowanym języku – dostępny jest angielski, hiszpański, niemiecki, francuski, chiński i ponad 40 innych!

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...


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!