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

Cum se creează liste drop-down dependente în documentul Word?


După cum se arată în captura de ecran din stânga, trebuie să limitați opțiunile din a doua listă drop-down pe baza opțiunii din primul drop-down, cum puteți face? Acest articol vă va arăta o metodă de a crea liste derulante dependente într-un document Word.

Creați liste derulante dependente în Word cu cod VBA


Creați liste derulante dependente în Word cu cod VBA

Codul VBA de mai jos vă poate ajuta să creați o listă derulantă dependentă într-un document Word. Vă rugăm să urmați instrucțiunile pas cu pas.

1. În primul rând, trebuie să inserați două liste derulante în documentul dvs. Word. Clic Dezvoltator > Formulare vechi > Câmp de formular drop-down. Vedeți captura de ecran:

2. Faceți clic dreapta pe prima listă derulantă (această listă derulantă ar trebui să fie cea părinte) și faceți clic pe Proprietăți. Vedeți captura de ecran:

3. În deschidere Opțiuni derulante pentru câmpul formularului casetă de dialog, trebuie să:

3.1 Introduceți categoria în Element drop-down apoi faceți clic pe Adăuga butonul, repetați operația până când toate categoriile sunt adăugate la caseta de listă derulantă Articole din.

3.2 Introduceți ddfood în semn de carte cutie.

3.3 Faceți clic pe OK buton. Vedeți captura de ecran:

4. Faceți clic dreapta pe a doua listă derulantă, faceți clic pe Proprietăţi să-i deschidă Opțiuni derulante pentru câmpul formularului casetă de dialog și, în dialog, introduceți ddCategorie în semn de carte și faceți clic pe OK buton. Vedeți captura de ecran:

5. apasă pe Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

6. În Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Modul, apoi copiați mai jos codul VBA în fereastra Module.

Cod VBA: creați o listă verticală dependentă în 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

note:

1. În cod, vă rugăm să schimbați articolele din fiecare caz după cum aveți nevoie.

2. ddfood și ddCategorie ar trebui să corespundă opțiunilor de marcaj introduse în cele două de mai sus Opțiuni derulante pentru câmpul formularului casete de dialog.

7. Salvați codul și reveniți la document.

8. Faceți clic dreapta pe prima listă derulantă și faceți clic pe Proprietăţi pentru a deschide Opțiuni derulante pentru câmpul formularului căsuță de dialog. În caseta de dialog, selectați numele macro de mai sus (aici este Popolateddfood) din Ieşire lista verticală, apoi faceți clic pe OK butonul.

9. Acum faceți clic pe Dezvoltator > Restricționați editarea după cum se arată în imaginea de mai jos.

10. În Restricționați editarea , trebuie să:

10.1) Verificați Permiteți doar acest tip de editare în document cutie;

10.2) Selectați Completarea formularelor opțiune din lista derulantă;

10.3) Faceți clic pe Da, începeți aplicarea protecției buton;

10.4) În Porniți aplicarea protecției , introduceți parola și faceți clic pe OK buton. Vedeți captura de ecran:

Acum este creată o listă derulantă dependentă. Când selectați Fructe în prima listă derulantă, în a doua pot fi selectate doar categoriile de fructe.


Instrumente de productivitate Word recomandate

 

Kutools pentru Word - Mai mult de 100 de funcții avansate pentru Word, economisiți-vă 50% timp

  • Operațiile complicate și repetate pot fi efectuate o singură dată în câteva secunde.
  • Inserați mai multe imagini în foldere în documentul Word simultan.
  • Combinați și combinați mai multe fișiere Word din foldere într-unul singur cu comanda dorită.
  • Împărțiți documentul curent în documente separate în funcție de titlu, secțiune de secțiune sau alte criterii.
  • Convertiți fișiere între Doc și Docx, Docx și PDF, colecție de instrumente pentru conversii și selecție obișnuite și așa mai departe ...
Comentarii (27)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există un cod similar pentru a face aproape același lucru, cu excepția faptului că un câmp de formular text se completează automat, în funcție de opțiunea derulantă? De exemplu, dacă alegeți o anumită companie în meniul drop-down și aveți un câmp de formular text completat automat cu orașul în care se află compania?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Îmi pare rău, vă pot ajuta cu asta. Multumesc pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Puteți adăuga acest lucru la mai multe zone dintr-o singură pagină formată din mai multe secțiuni? Am reușit să finalizez cu succes procesul într-o secțiune a documentului meu, dar când încerc să finalizez același proces pe aceeași pagină, dar într-o secțiune diferită a documentului meu și cu noi opțiuni drop-down, doar primele mele casete adăugate functioneaza, nu cele din a doua sectiune..
Acest comentariu a fost redus la minimum de moderatorul de pe site
buna ingrid,
Să presupunem că aveți trei grupuri de liste derulante dependente în documentul dvs. Dacă aveți nevoie ca toate listele derulante dependente să intre în vigoare, vă rugăm să aplicați codul VBA de mai jos și să efectuați setările de mai jos:

La pasul 4 și 5 pe care l-am menționat în articol, acum trebuie să faceți următoarele modificări:
1. Pentru primul grup de liste derulante dependente, vă rugăm să intrați în fereastra Proprietăți a fiecărei liste derulante și să specificați Marcaj ca ddfood1 și ddCategory1 separat;
2. Pentru al doilea grup de liste derulante dependente, vă rugăm să intrați în fereastra Proprietăți a fiecărei liste derulante și să specificați Marcaj ca ddfood2 și ddCategory2 separat;
2. Pentru al treilea grup de liste derulante dependente, vă rugăm să intrați în fereastra Proprietăți a fiecărei liste derulante și să specificați separat marcajul ca ddfood3 și ddCategory3;

Apoi continuați exact așa cum am furnizat în articol pentru a finaliza toate setările.

Cod VBA:
Subpopulatedfood()
'Actualizare până la Extendoffice 2019/03/18
Dim xDirection ca FormField
Dim xState ca FormField
Dim xRng As Range
Dim xFoodBM, xCategoryBM ca șir
Set xRng = Selection.Range
La data de eroare CV următoare
Pentru i = 1 Pentru ActiveDocument.FormFields.Count
xFoodBM = „ddfood” și i
xCategoryBM = „ddCategory” și i
Setați xDirection = ActiveDocument.FormFields(xFoodBM)
Setați xState = ActiveDocument.FormFields(xCategoryBM)
Dacă (Nu (xState este nimic)) și (Nu (xDirection este nimic)) atunci
Cu xState.DropDown.ListEntries
.Clar
Selectați Case xDirection.Result
Cazul „Fructe”
.Adăugați „Mere”
.Adăugați „Banana”
.Adăugați „Piersica”
.Adăugați „Lychee”
.Adăugați „Pepene verde”
Cazul "Legume"
.Adăugați „varză”
.Adăugați „ceapă”
Cazul „Carne”
.Adăugați „Carne de porc”
.Adăugați „Carne de vită”
.Adăugați „Mutton”
Selectare sfârșit
Se termina cu
Final, dacă
Set xDirection = Nimic
Set xState = Nimic
Pagina Următoare →
xRng.Select
End Sub
Acest comentariu a fost redus la minimum de moderatorul de pe site
se poate face acest lucru în versiuni mai vechi de Word sau trebuie să fie salvat ca un anumit tip de document?
Acest comentariu a fost redus la minimum de moderatorul de pe site
salut mary,
La ce versiune te referi?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut,
există restricții cu numele în câmp (de ex. 2 cuvinte sau folosirea unor caractere speciale)?
Ca și câmpul A (numele companiei) câmpul B (numele directorului, precum Jack Black).
Multumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Marc,
Da, există restricții cu numele în câmp.
Pentru mai multe cuvinte cu spații, trebuie să înlocuiți spațiile cu subliniere, cum ar fi Nume_Companie.
Și numele marcajului nu poate conține niciunul dintre caracterele speciale, cum ar fi / \ : * ? " < > |
Vă mulțumim pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,

Cum împachetăm textul? Am urmat pasul și funcționează bine doar că atunci când a doua listă este prea lungă, trece dincolo de pagină. Există vreo modalitate de a-l împacheta automat?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut Paul,
Îmi pare rău că nu te pot ajuta încă cu asta. Multumesc pentru comentariul tau.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am pus lista derulantă la treabă. Am o întrebare
Când fac selecția pentru primul drop-down, există vreo modalitate de a automatiza coordonarea și selecțiile aferente pentru următoarele meniuri derulante? De exemplu. Am un avocat derulant pentru părinți, cele două meniuri derulante pentru copii sunt titlul și, respectiv, numărul de telefon. Când selectez numele avocatului, aș dori ca meniurile derulante pentru copii aferente să completeze automat titlul și numărul de telefon. Cum aș putea să fac asta?

Mulțumesc în avans.

Sylvia
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,
Îmi pare rău că nu te pot ajuta încă cu asta. Multumesc pentru comentariul tau.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o modalitate de a adăuga mai multe câmpuri de categorie pe baza unei singure selecții? de exemplu, trebuie să spun Selectează „Vin”, dar trebuie să pot selecta 5 opțiuni (fructat, roșu, puternic, etc...) din cele 10 opțiuni posibile din a doua listă derulantă de câmpuri. Am urmat instrucțiunile de mai sus și funcționează bine pe un câmp numai cu un alt câmp dependent. Dar am nevoie de 5 câmpuri dependente, toate la fel declanșate de un singur câmp în acest caz „vin”. Dublez câmpul drop-down, nu funcționează, încerc să adaug un al doilea câmp la cod, dar nu sunt sigur cum: ActiveDocument.FormFields("ddCategory") și ("ddCategory2")
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Ed,
Îmi pare rău că nu te pot ajuta cu asta. Multumesc pentru comentariu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, Cum pot duplica caseta de categorii? Am folosit codul de mai sus și funcționează bine, dar numai pentru o cutie. Ce fac în cod dacă, de exemplu, trebuie să selectez până la 3 fructe după ce am selectat grupa Fructe? Dublez câmpul pe care l-am creat, dar numai unul funcționează.
---------------------
Selectați
FRUCTE: banane
măr
"selectați elementul"


----------------------------------
Selectați
Legumă: varză
ceapă
"selectați elementul"
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă mulțumim pentru această resursă foarte utilă.

Este posibil să repetați același drop-down dependent de mai multe ori într-un formular?

Am nevoie de completarea formularului pentru a atribui o categorie fiecărui rând nou (dar cu aceleași opțiuni de fiecare dată). Am creat cu succes meniurile drop-down, dar când restricționez editarea pentru a testa, par să se reseteze pe măsură ce lucrez pe rânduri.

mulțumesc
Amy
Acest comentariu a fost redus la minimum de moderatorul de pe site
Folosesc același cod, însă textul cu care înlocuiesc ddcategory are peste 100 de cuvinte. Există vreo modalitate de a împacheta textul pentru a preveni să iasă din pagină și să dispară?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeasi problema!! :0
Acest comentariu a fost redus la minimum de moderatorul de pe site
سلام من nuita
چیکار باید بکنم؟
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, dintr-un motiv oarecare nu pot modifica nimic altceva în fișierul Word dacă lista derulantă este activă. Există vreo modalitate de a evita asta?

mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am aceeași problemă dacă a putut cineva să mă ajute în această privință
Acest comentariu a fost redus la minimum de moderatorul de pe site
Acest lucru a fost extrem de util, mulțumesc.
Am o întrebare, există o modalitate de a modifica codul, astfel încât atunci când selectez un articol nou din prima listă derulantă, cel dependent să se clarifice?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Scuze pentru răspunsul târziu, am dat peste această pagină abia astăzi :-)
Deja face asta. Prima declarație din interiorul cazului Select... End select construction șterge a doua listă. Dacă niciunul dintre criterii nu este îndeplinit, nu se adaugă nimic.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mulțumesc pentru tutorialul detaliat, dar am o întrebare, deoarece șablonul de cuvânt este pentru uzul altora, 
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, multe mulțumiri pentru tutorialul detaliat, dar am o întrebare, deoarece șablonul de cuvânt este pentru uzul altora. Ați menționat modul de protecție și o parolă este obligatorie, acest lucru se poate face dacă le spun parola, atunci există un conflict: există și alte spații libere care trebuie completate, acest lucru nu se poate face numai dacă modul de protecție este oprit. Ce ar trebuii să fac? Există vreo metodă pentru a satisface ambele 2 nevoi?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua,

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 woman Gebäude,Bereich und dan Zimmernummer oder Bezeichnung auwählen kann.

Este das möglich în Outlook/Aufgaben?



Mulţumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună,
Puteți crea o listă derulantă cu câmp personalizat în fereastra de activități Outlook urmând pașii din acest articol:
Cum să adăugați o listă derulantă cu fișiere personalizate în fereastra de activități Outlook?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
Sau creați o listă derulantă în Word, apoi copiați și inserați-o în fereastra Sarcină după cum aveți nevoie.
Dar dacă doriți să creați liste derulante dependente în Outlook Task, nu a fost găsită încă nicio metodă.
Îmi pare rău pentru asta.
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL