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

Jak vytvořit závislé rozevírací seznamy v dokumentu Word?


Jak ukazuje levý snímek obrazovky, musíte omezit možnosti ve druhém rozevíracím seznamu na základě možnosti v prvním rozevíracím seznamu, jak to můžete udělat? Tento článek vám ukáže způsob vytváření závislých rozevíracích seznamů v dokumentu aplikace Word.

Vytvořte závislé rozevírací seznamy v aplikaci Word pomocí kódu VBA


Vytvořte závislé rozevírací seznamy v aplikaci Word pomocí kódu VBA

Níže uvedený kód VBA vám může pomoci vytvořit závislý rozevírací seznam v dokumentu aplikace Word. Postupujte prosím podle pokynů krok za krokem.

1. Nejprve musíte do dokumentu aplikace Word vložit dva rozevírací seznamy. Klepněte na Vývojka > Starší formuláře > Rozevírací pole formuláře. Viz snímek obrazovky:

2. Klikněte pravým tlačítkem na první rozevírací seznam (tento rozevírací seznam by měl být nadřazený) a klikněte na Vlastnosti. Viz obrázek:

3. V otvoru Možnosti rozevíracího pole formuláře dialogové okno, musíte:

3.1 Zadejte kategorii do Rozevírací položka a potom klepněte na tlačítko přidat tlačítko, opakujte operaci, dokud nebudou do rozevíracího seznamu Položky v přidány všechny kategorie.

3.2 Zadejte ddfood do Záložka box.

3.3 Klepněte na OK knoflík. Viz screenshot:

4. Klikněte pravým tlačítkem na druhý rozevírací seznam a klikněte na Nemovitosti otevřít jeho Možnosti rozevíracího pole formuláře v dialogovém okně a v dialogovém okně zadejte ddKategorie do Záložka a klikněte na tlačítko OK knoflík. Viz screenshot:

5. zmáčkni Další + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

6. V Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko Vložit > Modul, poté zkopírujte níže uvedený kód VBA do okna modulu.

Kód VBA: Vytvořte závislý rozevírací seznam v aplikaci Word

Sub Populateddfood()
'Update by Extendoffice 2018/10/25
    Dim xDirection As FormField
    Dim xState As FormField
    On Error Resume Next
    Set xDirection = ActiveDocument.FormFields("ddfood")
    Set xState = ActiveDocument.FormFields("ddCategory")
    If ((xDirection Is Nothing) Or (xState Is Nothing)) Then Exit Sub
    With xState.DropDown.ListEntries
        .Clear
        Select Case xDirection.Result
            Case "Fruit"
                .Add "Apple"
                .Add "Banana"
                .Add "Peach"
                .Add "Lychee"
                .Add "Watermelon"
            Case "Vegetable"
                .Add "Cabbage"
                .Add "Onion"
            Case "Meat"
                .Add "Pork"
                .Add "Beef"
                .Add "Mutton"
        End Select
    End With
End Sub

Poznámky:

1. V kódu prosím změňte položky v jednotlivých případech, jak potřebujete.

2. ddfood a ddKategorie by se měly shodovat s možnostmi záložek, které jste zadali ve dvou výše Možnosti rozevíracího pole formuláře dialogová okna.

7. Uložte kód a vraťte se k dokumentu.

8. Klikněte pravým tlačítkem na první rozevírací seznam a klikněte na Nemovitosti k otevření Možnosti rozevíracího pole formuláře dialogové okno. V dialogovém okně vyberte výše uvedený název makra (zde je Popolateddfood) z okna Výstup rozevírací seznam a poté klikněte na ikonu OK .

9. Nyní klikněte Vývojka > Omezení úpravy jak je ukázáno níže.

10. V Omezení úpravy podokno, musíte:

10.1) Zkontrolujte Povolit pouze tento typ úprav v dokumentu krabice;

10.2) Vyberte Vyplňování formulářů možnost z rozevíracího seznamu;

10.3) Klikněte na Ano, spusťte ochranu tlačítko;

10.4) V Začněte prosazovat ochranu dialogové okno, zadejte heslo a klikněte na OK knoflík. Viz screenshot:

Nyní je vytvořen závislý rozevírací seznam. Při výběru Ovoce v prvním rozevíracím seznamu lze vybrat pouze kategorie ovoce ve druhém.


Doporučené nástroje produktivity slov

 

Kutools pro Word - více než 100 pokročilých funkcí pro Word, ušetříte 50% času

  • Složité a opakované operace lze provádět jednorázově během několika sekund.
  • Vložte více obrázků do složek do dokumentu Word najednou.
  • Sloučte a zkombinujte více souborů Wordu napříč složkami do jednoho v požadovaném pořadí.
  • Rozdělte aktuální dokument na samostatné dokumenty podle záhlaví, zalomení sekce nebo jiných kritérií.
  • Převádějte soubory mezi Doc a Docx, Docx a PDF, kolekci nástrojů pro běžné převody a výběr atd. ...
Komentáře (27)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Existuje podobný kód, který by provedl téměř přesně stejnou věc, kromě toho, že se pole textového formuláře automaticky vyplní v závislosti na rozbalovací nabídce? Například vybrat konkrétní společnost v rozevíracím seznamu a nechat pole textového formuláře automaticky vyplnit město, kde se společnost nachází?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Sorry ti s tím může pomoct. Děkuji za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Můžete to přidat do více oblastí na jedné stránce sestávající z více sekcí? Byl jsem schopen úspěšně dokončit proces v jedné části svého dokumentu, ale když se pokusím dokončit stejný proces na stejné stránce, ale v jiné části dokumentu a s novými rozevíracími možnostmi, zobrazí se pouze moje první přidaná pole fungují, ne ty v druhé sekci..
Tento komentář byl moderátorem webu minimalizován
ahoj ingrid,
Předpokládejme, že máte v dokumentu tři skupiny závislých rozevíracích seznamů. Pokud potřebujete, aby se všechny závislé rozevírací seznamy projevily, použijte níže uvedený kód VBA a proveďte níže uvedená nastavení:

V kroku 4 a 5, které jsme zmínili v článku, nyní musíte provést následující změny:
1. Pro první skupinu závislých rozevíracích seznamů přejděte do okna Vlastnosti každého rozevíracího seznamu a určete záložku jako ddfood1 a ddCategory1 samostatně;
2. Pro druhou skupinu závislých rozevíracích seznamů přejděte do okna Vlastnosti každého rozevíracího seznamu a určete záložku jako ddfood2 a ddCategory2 zvlášť;
2. Pro třetí skupinu závislých rozevíracích seznamů přejděte do okna Vlastnosti každého rozevíracího seznamu a určete záložku jako ddfood3 a ddCategory3 samostatně;

Poté pokračujte přesně tak, jak jsme uvedli v článku, abyste dokončili celé nastavení.

VBA kód:
Podvyplněné jídlo()
'Aktualizovat od Extendoffice 2019 / 03 / 18
Dim xDirection As FormField
Dim xState As FormField
Dim xRng As Range
Dim xFoodBM, xCategoryBM jako řetězec
Nastavit xRng = Selection.Range
On Error Resume Next
Pro i = 1 To ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & i
xCategoryBM = "ddCategory" & i
Nastavit xDirection = ActiveDocument.FormFields(xFoodBM)
Nastavit xState = ActiveDocument.FormFields(xCategoryBM)
If (Not (xState Is Nothing)) A (Not (xDirection Is Nothing)) Then
S xState.DropDown.ListEntries
.Průhledná
Vyberte Case xDirection.Result
Případ "Ovoce"
.Přidat „Apple“
.Přidat "Banán"
.Přidat "Peach"
.Přidat "liči"
.Přidat "Meloun"
Případ "Zelenina"
.Přidat "zelí"
.Přidat "cibuli"
Případ "Maso"
.Přidat "vepřové maso"
.Přidat "hovězí maso"
.Přidat "skopové"
Konec Vybrat
Konec s
End If
Nastavte xDirection = nic
Nastavit xState = nic
další
xRng.Vybrat
End Sub
Tento komentář byl moderátorem webu minimalizován
lze to provést ve starších verzích aplikace Word nebo je třeba uložit jako určitý typ dokumentu?
Tento komentář byl moderátorem webu minimalizován
ahoj mary,
Jakou verzi máš na mysli?
Tento komentář byl moderátorem webu minimalizován
Ahoj,
Jsou u jména v poli omezení (např. 2 slova nebo použití speciálních znaků)?
Jako pole A (název společnosti) Pole B (jméno ředitele, jako Jack Black).
Díky!
Tento komentář byl moderátorem webu minimalizován
Ahoj Marc,
Ano, existují omezení s názvem v poli.
U více slov s mezerami je třeba nahradit mezery podtržením, například Název_společnosti.
A název záložky nesmí obsahovat žádné speciální znaky, jako je / \ : * ? " < > |
Díky za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Jak zalamujeme text? Sledoval jsem krok a funguje to dobře, kromě toho, že když je druhý seznam příliš dlouhý, přesahuje stránku. Existuje způsob, jak to automaticky zabalit?
Tento komentář byl moderátorem webu minimalizován
Ahoj Pavle,
S tím vám bohužel zatím nemohu pomoci. Děkuji za Váš komentář.
Tento komentář byl moderátorem webu minimalizován
Ahoj, mám rozbalovací seznamy do práce. mám otázku
Když provedu výběr pro první rozevírací seznam, existuje nějaký způsob, jak automatizovat koordinaci a související výběry pro následující rozevírací seznamy? Například. Mám rodičovskou rozevírací nabídku právníka, dvě rozbalovací nabídky pro děti jsou titul a telefonní číslo. Když vyberu jméno právního zástupce, chtěl bych, aby se v rozevíracím seznamu souvisejícího dítěte automaticky vyplnil titul a telefonní číslo. Jak bych to mohl udělat?

Díky předem.

Sylvia
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
S tím vám bohužel zatím nemohu pomoci. Děkuji za Váš komentář.
Tento komentář byl moderátorem webu minimalizován
Existuje způsob, jak přidat více polí kategorie na základě jednoho výběru? například musím říct Select "Wine", ale musím mít možnost vybrat 5 možností (ovocná, červená, silná atd...) z 10 možných možností ve druhém rozevíracím seznamu. Postupoval jsem podle výše uvedených pokynů a funguje dobře pouze na jednom poli s jedním dalším závislým polem. Ale potřebuji 5 závislých polí, všechna stejně spouštěná jedním polem v tomto případě "víno". Duplikuji rozevírací pole, nefunguje to, pokouším se přidat do kódu druhé pole, ale nejsem si jistý jak: ActiveDocument.FormFields("ddCategory") a ("ddCategory2")
Tento komentář byl moderátorem webu minimalizován
Ahoj Ed,
S tím vám bohužel nepomůžu. Děkuji za váš komentář.
Tento komentář byl moderátorem webu minimalizován
Dobrý den, jak mohu duplikovat pole kategorií? Použil jsem výše uvedený kód a funguje dobře, ale pouze pro jednu krabici. Co mám v kódu udělat, když například potřebuji vybrat až 3 druhy ovoce poté, co jsem vybral skupinu ovoce? Duplikuji pole, které jsem vytvořil, ale funguje pouze jedno.
---------------------
vybrat
OVOCE: banán
jablko
"vybrat předmět"


----------------------------------
vybrat
Zelenina: zelí
cibule
"vybrat předmět"
Tento komentář byl moderátorem webu minimalizován
Děkujeme za tento velmi užitečný zdroj.

Je možné opakovat stejnou závislou rozbalovací nabídku vícekrát ve formuláři?

Potřebuji, aby výplň formuláře přiřadila kategorii ke každému novému řádku (ale pokaždé se stejnými možnostmi). Úspěšně jsem vytvořil rozevírací seznamy, ale když omezím úpravy na testování, zdá se, že se resetují, když pracuji dolů v řádcích.

Díky
Amy
Tento komentář byl moderátorem webu minimalizován
Používám stejný kód, ale text, kterým nahrazuji kategorii dd, má více než 100 slov. Existuje nějakým způsobem zalomit text, aby se zabránilo jeho odchodu ze stránky a zmizení?
Tento komentář byl moderátorem webu minimalizován
Mám stejný problém!! :0
Tento komentář byl moderátorem webu minimalizován
سلام من همه مراحل رو رفتم ولی درآخر وقتی از لیست اول یه استان رو ان há mus mus mus ه ا ش ش ش ش ش ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا ا فقط فقط فقط فقط فقط فقط فقط فقط فقط فقط فقط ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ه ی ی ی ی ی ی ی ی ی ی ی ی ی ی ی.
چیکار باید بکنم؟
Tento komentář byl moderátorem webu minimalizován
Dobrý den, z nějakého důvodu nemohu ve wordovém souboru upravit nic jiného, ​​pokud je aktivní rozevírací seznam. Existuje způsob, jak se tomu vyhnout?

Děkuji
Tento komentář byl moderátorem webu minimalizován
Mám stejný problém, byl někdo schopen pomoci s tímto
Tento komentář byl moderátorem webu minimalizován
Bylo to velmi užitečné, děkujeme.
Mám dotaz, dá se nějak upravit kód tak, že když vyberu novou položku z prvního rozevíracího seznamu, ta závislá se vyčistí?
Tento komentář byl moderátorem webu minimalizován
Omlouvám se za pozdní odpověď, na tuto stránku jsem narazil až dnes :-)
Už to dělá. První příkaz uvnitř případu Select... End select vymaže druhý seznam. Pokud není splněno žádné z kritérií, nic se nepřidává.
Tento komentář byl moderátorem webu minimalizován
Ahoj, děkuji za podrobný návod, ale mám otázku, protože slovo šablona je pro ostatní, 
Tento komentář byl moderátorem webu minimalizován
Ahoj, mnohokrát děkuji za podrobný návod, ale mám otázku, protože slovo šablona je pro ostatní. Zmínil jste ochranný režim a heslo je nutností, to lze udělat, když jim řeknu heslo, pak dojde ke konfliktu: jsou zde ještě některá další prázdná místa, která je třeba vyplnit, nelze to provést, pouze pokud je ochranný režim vypnuto. Co bych měl dělat? Existuje nějaký způsob, jak splnit obě 2 potřeby?
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

ist das ganze auch unter Outlook möglich. Leider bekomme ich das so nicht hin da die Eigenschaften des Dropdown Menüs ganz anders aussehen.

Ich wollte unter Aufgaben einen Reparaturauftrag erstellen wo man Gebäude,Bereich und dan Zimmernummer oder Bezeichnung auwählen kann.

Je das möglich v aplikaci Outlook/Aufgaben?



Děkuji
Tento komentář byl moderátorem webu minimalizován
Dobrý den,
Můžete vytvořit rozevírací seznam s vlastním polem v okně úloh aplikace Outlook podle kroků v tomto článku:
Jak přidat rozevírací seznam s vlastním souborem v okně úloh aplikace Outlook?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
Nebo vytvořte rozevírací seznam ve wordu a poté jej zkopírujte a vložte do okna Úkol, jak potřebujete.
Pokud však chcete vytvořit závislé rozevírací seznamy v úloze aplikace Outlook, zatím nebyla nalezena žádná metoda.
Omlouvám se za to.
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění