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

Come creare elenchi a discesa dipendenti nel documento di Word?


Come mostrato nella schermata di sinistra, devi limitare le scelte nel secondo elenco a discesa in base all'opzione nel primo menu a discesa, come puoi fare? Questo articolo ti mostrerà un metodo per creare elenchi a discesa dipendenti in un documento di Word.

Crea elenchi a discesa dipendenti in Word con codice VBA


Crea elenchi a discesa dipendenti in Word con codice VBA

Il codice VBA seguente può aiutarti a creare un elenco a discesa dipendente in un documento di Word. Si prega di seguire le istruzioni passo dopo passo.

1. Innanzitutto, è necessario inserire due elenchi a discesa nel documento di Word. Clic Costruttori > Moduli legacy > Campo modulo a discesa. Vedi screenshot:

2. Fare clic con il pulsante destro del mouse sul primo elenco a discesa (questo elenco a discesa dovrebbe essere quello principale) e fare clic Proprietà. Visualizza gli screenshot:

3. In apertura Opzioni del campo modulo a discesa finestra di dialogo, è necessario:

3.1 Immettere la categoria nel file Elemento a discesa casella e quindi fare clic su Aggiungi , ripetere l'operazione finché tutte le categorie non vengono aggiunte alla casella di riepilogo a discesa Elementi in.

3.2 Invio food nella Segnalibro scatola.

3.3 Fare clic su OK pulsante. Vedi screenshot:

4. Fare clic con il pulsante destro del mouse sul secondo elenco a discesa, fare clic su Proprietà per aprirlo Opzioni del campo modulo a discesa finestra di dialogo e nella finestra di dialogo immettere ddCategoria nella Segnalibro casella e fare clic su OK pulsante. Vedi screenshot:

5. premi il altro + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.

6. Nel Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Modulo, quindi copia sotto il codice VBA nella finestra del modulo.

Codice VBA: crea un elenco a discesa dipendente in 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. Nel codice, modificare gli elementi in ogni caso di cui hai bisogno.

2. food e ddCategoria dovrebbe corrispondere alle opzioni dei segnalibri inserite nei due precedenti Opzioni del campo modulo a discesa finestre di dialogo.

7. Salvare il codice e tornare al documento.

8. Fare clic con il pulsante destro del mouse sul primo elenco a discesa e fare clic Proprietà per aprire il Opzioni del campo modulo a discesa la finestra di dialogo. Nella finestra di dialogo, seleziona il nome della macro sopra (qui è Popolateddfood) dal file uscita elenco a discesa, quindi fare clic su OK pulsante.

9. Ora fai clic su Costruttori > Limita modifica come mostrato nell'immagine sottostante.

10. Nel Limita modifica riquadro, è necessario:

10.1) Controllare il file Consenti solo questo tipo di modifica nel documento scatola;

10.2) Seleziona Compilazione di moduli opzione dall'elenco a discesa;

10.3) Fare clic su Sì, avvia l'applicazione della protezione pulsante;

10.4) nel Avvia l'applicazione della protezione finestra di dialogo, immettere la password e fare clic su OK pulsante. Vedi screenshot:

Ora viene creato un elenco a discesa dipendente. Quando si seleziona Frutta nel primo elenco a discesa, nel secondo è possibile selezionare solo le categorie di frutta.


Strumenti di produttività Word consigliati

 

Kutools per Word: oltre 100 funzionalità avanzate per Word, risparmia il 50% del tempo

  • Le operazioni complicate e ripetute possono essere eseguite una sola volta in pochi secondi.
  • Inserisci più immagini tra le cartelle nel documento di Word contemporaneamente.
  • Unisci e combina più file di Word tra cartelle in uno con l'ordine desiderato.
  • Suddividi il documento corrente in documenti separati in base a titolo, interruzione di sezione o altri criteri.
  • Converti file tra Doc e Docx, Docx e PDF, raccolta di strumenti per conversioni e selezioni comuni e così via ...
Commenti (27)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Esiste un codice simile per fare quasi la stessa identica cosa, tranne per il fatto che un campo del modulo di testo venga compilato automaticamente in base alla scelta del menu a discesa? Ad esempio, scegliendo un'azienda specifica nel menu a discesa e facendo in modo che un campo di modulo di testo venga compilato automaticamente con la città in cui si trova l'azienda?
Questo commento è stato fatto dal moderatore sul sito
Buona giornata,
Mi dispiace, posso aiutarti in questo. Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
Puoi aggiungerlo a più aree su una singola pagina composta da più sezioni? Sono stato in grado di completare con successo il processo in una sezione del mio documento, ma quando provo a completare lo stesso processo mentre sono sulla stessa pagina, ma in una sezione diversa del mio documento e con nuove opzioni a discesa, solo le mie prime caselle aggiunte funzionano, non quelli della seconda sezione..
Questo commento è stato fatto dal moderatore sul sito
Ciao ingrid,
Supponendo di avere tre gruppi di elenchi a discesa dipendenti nel documento. Se hai bisogno che tutti gli elenchi a discesa dipendenti abbiano effetto, applica il codice VBA sottostante ed esegui le impostazioni seguenti:

Nei passaggi 4 e 5 menzionati nell'articolo, ora è necessario apportare le seguenti modifiche:
1. Per il primo gruppo di elenchi a discesa dipendenti, accedere alla finestra Proprietà di ciascun elenco a discesa e specificare il segnalibro come ddfood1 e ddCategory1 separatamente;
2. Per il secondo gruppo di elenchi a discesa dipendenti, accedere alla finestra Proprietà di ciascun elenco a discesa e specificare il segnalibro come ddfood2 e ddCategory2 separatamente;
2. Per il terzo gruppo di elenchi a discesa dipendenti, accedere alla finestra Proprietà di ciascun elenco a discesa e specificare il segnalibro come ddfood3 e ddCategory3 separatamente;

Quindi vai avanti esattamente come abbiamo fornito nell'articolo per completare tutte le impostazioni.

Codice VBA:
Sub Populateddfood()
'Aggiorna entro Extendoffice 2019/03/18
Dim xDirection come campo modulo
Dim xState As FormField
Dim xRng come intervallo
Dim xFoodBM, xCategoryBM come stringa
Imposta xRng = Selezione.Intervallo
On Error Resume Next
Per i = 1 su ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & i
xCategoryBM = "ddCategory" & i
Imposta xDirection = ActiveDocument.FormFields(xFoodBM)
Imposta xState = ActiveDocument.FormFields(xCategoryBM)
If (Not (xState Is Nothing)) e (Not (xDirection Is Nothing)) Allora
Con xState.DropDown.ListEntries
.Chiaro
Selezionare Caso xDirection.Risultato
Caso "Frutta"
.Aggiungi "Mela"
.Aggiungi "Banana"
.Aggiungi "Pesca"
.Aggiungi "Litchi"
.Aggiungi "anguria"
Caso "Vegetale"
.Aggiungi "cavolo"
.Aggiungi "Cipolla"
Caso "Carne"
.Aggiungi "Maiale"
.Aggiungi "Manzo"
.Aggiungi "Montone"
End Select
Fine Con
End If
Imposta xDirection = Niente
Imposta xStato = Niente
Successiva
xRng.Seleziona
End Sub
Questo commento è stato fatto dal moderatore sul sito
questo può essere fatto in versioni precedenti di Word o deve essere salvato come un determinato tipo di documento?
Questo commento è stato fatto dal moderatore sul sito
ciao maria,
Quale versione intendi?
Questo commento è stato fatto dal moderatore sul sito
Ciao,
ci sono restrizioni con il nome nel campo (es. 2 parole, o uso di caratteri speciali)?
Come il campo A (nome dell'azienda) il campo B (nome del direttore, come Jack Black).
Grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao Marc,
Sì, ci sono restrizioni con il nome nel campo.
Per più parole con spazi, è necessario sostituire gli spazi con undelines come Company_Name.
E il nome del segnalibro non può contenere nessuno dei caratteri speciali come / \ : * ? " < > |
Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
Ciao,

Come facciamo a capovolgere il testo? Ho seguito il passaggio e funziona bene, tranne per il fatto che quando il secondo elenco è troppo lungo, va oltre la pagina. C'è un modo per farlo avvolgere automaticamente?
Questo commento è stato fatto dal moderatore sul sito
Hi Paul,
Mi dispiace non poterti aiutare con quello ancora. Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
CIAO ho fatto funzionare i menu a discesa. Ho una domanda
Quando effettuo la selezione per il primo menu a discesa, c'è un modo per automatizzare il coordinamento e le relative selezioni per i seguenti menu a discesa? Per esempio. Ho un avvocato a discesa dei genitori, i menu a discesa dei due figli sono rispettivamente Titolo e Numero di telefono. Quando seleziono il nome dell'avvocato, vorrei che i relativi menu a discesa per bambini compilassero automaticamente il titolo e il numero di telefono. Come potrei farlo?

Grazie in anticipo.

Sylvia
Questo commento è stato fatto dal moderatore sul sito
Buona giornata,
Mi dispiace non poterti aiutare con quello ancora. Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
C'è un modo per aggiungere più campi di categoria in base a una selezione? per esempio devo dire Seleziona "Vino" ma devo essere in grado di selezionare 5 opzioni (fruttato, rosso, forte, ecc...) dalle 10 possibili opzioni nel secondo elenco a discesa. Ho seguito le istruzioni sopra e funziona bene su un campo solo con un altro campo dipendente. Ma ho bisogno di 5 campi dipendenti, tutti ugualmente attivati ​​dall'unico campo in questo caso "vino". Duplico il campo a discesa non funziona, sto cercando di aggiungere un secondo campo al codice, ma non sono sicuro di come: ActiveDocument.FormFields("ddCategory") e ("ddCategory2")
Questo commento è stato fatto dal moderatore sul sito
Ciao Ed,
Mi dispiace non poterti aiutare con quello. Grazie per il tuo commento.
Questo commento è stato fatto dal moderatore sul sito
Ciao, come posso duplicare la casella delle categorie? Ho usato il codice sopra e funziona bene, ma solo per una scatola. Cosa devo fare nel codice se ad esempio devo selezionare fino a 3 frutti dopo aver selezionato il gruppo Frutta? Sto duplicando il campo che ho creato ma solo uno funziona.
---------------------
Seleziona
FRUTTA: banana
mela
"scegliere oggetto"


----------------------------------
Seleziona
Verdura: Cavolo
cipolla
"scegliere oggetto"
Questo commento è stato fatto dal moderatore sul sito
Grazie per questa risorsa molto utile.

È possibile ripetere lo stesso elenco a discesa dipendente più volte all'interno di un modulo?

Ho bisogno del compilatore del modulo per assegnare una categoria a ogni nuova riga (ma con le stesse opzioni ogni volta). Ho creato con successo i menu a discesa ma quando limito la modifica per testare, sembrano ripristinarsi mentre lavoro lungo le righe.

Grazie
Amy
Questo commento è stato fatto dal moderatore sul sito
Sto usando lo stesso codice, tuttavia il testo con cui sostituisco ddcategory ha più di 100 parole. Esiste un modo per avvolgere il testo per evitare che esca dalla pagina e scompaia?
Questo commento è stato fatto dal moderatore sul sito
Ho lo stesso problema!! :0
Questo commento è stato fatto dal moderatore sul sito
سلام من همه مراحل رو رفتم ولی درآخر وقتی از از لیست اول یه استان رو انتخاب می کنم Andttroی semplicemente دهlue دdre
چیکار باید بکنم؟
Questo commento è stato fatto dal moderatore sul sito
Ciao, per qualche motivo non posso modificare nient'altro nel file word se l'elenco a discesa è attivo. C'è un modo per evitarlo?

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ho lo stesso problema qualcuno è stato in grado di aiutare su questo
Questo commento è stato fatto dal moderatore sul sito
Questo è stato estremamente utile, grazie.
Ho una domanda, c'è un modo per modificare il codice in modo che quando seleziono un nuovo elemento dal primo elenco a discesa, quello dipendente si chiarisce?
Questo commento è stato fatto dal moderatore sul sito
Scusa per il ritardo nella risposta, sono incappato in questa pagina solo oggi :-)
Lo fa già. La prima istruzione all'interno della costruzione Select case ... End select cancella il secondo elenco. Se nessuno dei criteri è soddisfatto, non viene aggiunto nulla.
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per il tutorial dettagliato, ma ho una domanda poiché la parola modello è per l'uso di altri, 
Questo commento è stato fatto dal moderatore sul sito
Ciao, molte grazie per il tutorial dettagliato, ma ho una domanda poiché la parola modello è per l'uso di altri. Hai menzionato la modalità di protezione e una password è d'obbligo, questo può fare se dico loro la password, quindi c'è un conflitto: ci sono altri spazi che devono essere riempiti, questo non può essere fatto solo se la modalità di protezione è spento. Cosa dovrei fare? Esiste un metodo per soddisfare entrambe le 2 esigenze?
Questo commento è stato fatto dal moderatore sul sito
Hallo,

ist das ganze auch sotto Outlook möglich. Leider bekomme ich das so nicht hin da die Eigenschaften des Dropdown Menus ganz anders aussehen.

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

Is das möglich in Outlook/Aufgaben?



Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao,
È possibile creare un elenco a discesa con campo personalizzato nella finestra delle attività di Outlook seguendo i passaggi in questo articolo:
Come aggiungere un elenco a discesa con archiviato personalizzato nella finestra delle attività di Outlook?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
Oppure crea un elenco a discesa in Word, quindi copialo e incollalo nella finestra delle attività di cui hai bisogno.
Ma se desideri creare elenchi a discesa dipendenti in Attività di Outlook, non è stato ancora trovato alcun metodo.
Sorry about that.
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL