Přejít k hlavnímu obsahu

Jak synchronizovat rozevírací seznamy ve více listech v aplikaci Excel?

Autor: Siluvia Naposledy změněno: 2024-12-05

Předpokládejme, že máte rozevírací seznamy na několika listech v sešitu, které obsahují přesně stejné rozevírací položky. Nyní chcete synchronizovat rozevírací seznamy napříč listy tak, že jakmile vyberete položku z rozevíracího seznamu v jednom listu, rozevírací seznamy v ostatních listech se automaticky synchronizují se stejným výběrem. Tento článek poskytuje kód VBA, který vám pomůže tento problém vyřešit.

Synchronizujte rozevírací seznamy ve více listech s kódem VBA


Synchronizujte rozevírací seznamy ve více listech s kódem VBA

Například rozevírací seznamy jsou v pěti pojmenovaných listech List1, List2, ..., List5, Chcete-li synchronizovat rozevírací seznamy v jiných listech podle rozevíracího výběru v Listu1, použijte k tomu následující kód VBA.

1. Otevřete List1, klepněte pravým tlačítkem na záložku listu a vyberte Zobrazit kód z nabídky pravým tlačítkem myši.

Snímek obrazovky zobrazující nabídku po kliknutí pravým tlačítkem na List1 pro zobrazení kódu v Excelu

2. V Microsoft Visual Basic pro aplikace okno, vložte následující kód VBA do List1 (kód) okno.

Snímek obrazovky zobrazující okno Microsoft Visual Basic for Applications, kde je v Excelu vložen kód VBA

Kód VBA: Synchronizujte rozevírací seznam ve více listech

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

Poznámky:

1) V kódu, A2: A11 je rozsah obsahující rozevírací seznam. Ujistěte se, že všechny rozevírací seznamy jsou v různých listech ve stejném rozsahu.
2) List2, List3, List4 si Sheet5 jsou listy, které obsahují rozevírací seznamy, které chcete synchronizovat na základě rozevíracího seznamu v List1;
3) Chcete-li do kódu přidat další listy, přidejte následující dva řádky před řádek „Application.EnableEvents = True“, poté změňte název listu „Sheet5” na požadované jméno.
Nastavit tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
tSheet1.Range(xRangeStr).Value = Target.Value

3. zmáčkni Další + Q klávesy pro zavření Microsoft Visual Basic pro aplikace okno.

Od této chvíle, když vyberete položku z rozevíracího seznamu v List1, rozevírací seznamy v určených listech budou automaticky synchronizovány, aby měly stejný výběr. Podívejte se na níže uvedené demo.

GIF zobrazující, jak se rozevírací seznamy synchronizují mezi listy, když je vybrána položka v aplikaci Excel


Demo: Synchronizace rozevíracích seznamů ve více listech v aplikaci Excel

 

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více
Používejte Kutools ve vašem preferovaném jazyce – podporuje angličtinu, španělštinu, němčinu, francouzštinu, čínštinu a více než 40 dalších!

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!