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

Hur skapar man beroende listrutor i Word-dokument?


Som den vänstra skärmdumpen visas måste du begränsa valen i den andra rullgardinsmenyn baserat på alternativet i den första rullgardinsmenyn, hur kan du göra? Den här artikeln visar dig en metod för att skapa beroende rullgardinslistor i ett Word-dokument.

Skapa beroende rullgardinslistor i Word med VBA-kod


Skapa beroende rullgardinslistor i Word med VBA-kod

VBA-koden nedan kan hjälpa dig att skapa en beroende rullgardinslista i ett Word-dokument. Följ instruktionerna steg för steg.

1. För det första måste du infoga två listrutor i ditt Word-dokument. Klick Utvecklare > Äldre formulär > Nedrullningsbart formulärfält. Se skärmdump:

2. Högerklicka på den första rullgardinsmenyn (den här rullgardinsmenyn ska vara den överordnade) och klicka Egenskaper. Se skärmdump:

3. I öppningen Listruta Alternativ för formulärfält dialogrutan måste du:

3.1 Ange kategorin i Listruta rutan och klicka sedan på Lägg till upprepa åtgärden tills alla kategorier läggs till i listrutan Objekt i listrutan.

3.2 Gå in ddmat i Bokmärke låda.

3.3 Klicka på OK knapp. Se skärmdump:

4. Högerklicka på den andra rullgardinsmenyn, klicka Fastigheter att öppna sin Listruta Alternativ för formulärfält dialogrutan och i dialogrutan anger du ddCategory i Bokmärke ruta och klicka på OK knapp. Se skärmdump:

5. tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

6. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modul, kopiera sedan VBA-koden nedan till modulfönstret.

VBA-kod: Skapa beroende listruta i 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

Anmärkningar:

1. I koden, ändra objekt under varje enskilt fall efter behov.

2. ddmat och ddCategory bör matcha de bokmärkesalternativ som du angav i ovanstående två Listruta Alternativ för formulärfält dialogrutor.

7. Spara koden och gå tillbaka till dokumentet.

8. Högerklicka på den första listrutan och klicka Fastigheter att öppna Listruta Alternativ för formulärfält dialog ruta. I dialogrutan, välj ovanstående makronamn (här är Popolateddfood) från Utgång rullgardinsmenyn och klicka sedan på OK knapp.

9. Klicka nu Utvecklare > Begränsa redigering som nedan visas skärmdump.

10. I Begränsa redigering rutan måste du:

10.1) Kontrollera Tillåt endast denna typ av redigering i dokumentet låda;

10.2) Välj Fyll i formulär alternativ från listrutan;

10.3) Klicka på Ja, börja förstärka skyddet knapp;

10.4) I Börja genomdriva skydd dialogrutan, ange lösenordet och klicka på OK knapp. Se skärmdump:

Nu skapas en beroende rullgardinslista. När du väljer Frukt i den första rullgardinsmenyn kan endast fruktkategorierna väljas i den andra.


Rekommenderade Word-produktivitetsverktyg

 

Kutools For Word - Mer än 100 avancerade funktioner för Word, spara 50 % tid

  • Komplicerade och upprepade operationer kan göras engångsbehandling på några sekunder.
  • Infoga flera bilder över mappar i Word-dokumentet samtidigt.
  • Slå ihop och kombinera flera Word-filer över mappar till en med önskad ordning.
  • Dela upp det aktuella dokumentet i separata dokument enligt rubrik, avsnittbrytning eller andra kriterier.
  • Konvertera filer mellan Doc och Docx, Docx och PDF, samling verktyg för vanliga konverteringar och val, och så vidare ...
Sortera kommentarer efter
Kommentarer (27)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det en liknande kod för att göra nästan exakt samma sak förutom att ett textformulärfält fylls i automatiskt beroende på rullgardinsvalet? Om du till exempel väljer ett specifikt företag i rullgardinsmenyn och att ett textformulärfält automatiskt fylls i med staden där företaget finns?
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Sorry kan hjälpa dig med det. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Kan du lägga till detta till flera områden på en enda sida som består av flera avsnitt? Jag kunde framgångsrikt slutföra processen i en del av mitt dokument, men när jag försöker slutföra samma process på samma sida, men i en annan del av mitt dokument och med nya rullgardinsalternativ, är det bara mina första tillagda rutor fungerar, inte de i andra avsnittet..
Denna kommentar minimerades av moderatoren på webbplatsen
hej ingrid,
Anta att du har tre grupper av beroende rullgardinslistor i ditt dokument. Om du behöver att alla beroende rullgardinslistor träder i kraft, använd nedanstående VBA-kod och gör följande inställningar:

I steg 4 och 5 som vi nämnde i artikeln måste du nu göra följande ändringar:
1. För den första gruppen av de beroende rullgardinslistorna, gå in i varje rullgardinslistas Egenskapsfönster och ange bokmärket som ddfood1 och ddCategory1 separat;
2. För den andra gruppen av de beroende rullgardinslistorna, gå in i respektive rullgardinslistas Egenskapsfönster och ange bokmärket som ddfood2 och ddCategory2 separat;
2. För den tredje gruppen av de beroende rullgardinslistorna, gå in i varje rullgardinslistas Egenskapsfönster och ange bokmärket som ddfood3 och ddCategory3 separat;

Gå sedan vidare precis som vi angav i artikeln för att slutföra hela inställningarna.

VBA-kod:
Sub Populateddfood()
'Uppdatera av Extendoffice 2019/03/18
Dim xDirection As FormField
Dim xState As FormField
Dim xRng As Range
Dim xFoodBM, xCategoryBM As String
Ställ in xRng = Selection.Range
On Error Resume Next
För i = 1 Till ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & i
xCategoryBM = "ddCategory" & i
Ställ in xDirection = ActiveDocument.FormFields(xFoodBM)
Ställ in xState = ActiveDocument.FormFields(xCategoryBM)
Om (Not (xState Is Nothing)) Och (Not (xDirection Is Nothing)) Då
Med xState.DropDown.ListEntries
.Klar
Välj Case xDirection.Result
Fodral "Fruit"
.Lägg till "Apple"
.Lägg till "Banan"
.Lägg till "Peach"
.Lägg till "litchi"
. Lägg till "vattenmelon"
Fodral "Grönsak"
.Lägg till "Kål"
.Lägg till "lök"
Fall "Kött"
.Lägg till "Fläsk"
.Lägg till "nötkött"
.Lägg till "Fårkött"
Avsluta Välj
Sluta med
End If
Ställ in xDirection = Ingenting
Ställ in xState = Ingenting
Nästa
xRng.Select
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
kan detta göras i äldre versioner av Word eller måste sparas som en viss dokumenttyp?
Denna kommentar minimerades av moderatoren på webbplatsen
hej mary,
Vilken version menar du?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
finns det begränsningar med namnet i fältet (t.ex. 2 ord, eller användning av speciella tecken)?
Som fält A (företagsnamn) Fält B (direktörens namn, som Jack Black).
Tack!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Marc,
Ja, det finns begränsningar med namnet i fältet.
För flera ord med mellanslag måste du ersätta mellanrummen med understrykning som Företagsnamn.
Och bokmärkesnamnet kan inte innehålla något av specialtecknen som / \ : * ? " < > |
Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,

Hur radbryter vi text? Jag följde steget och det fungerar bra förutom att när den andra listan är för lång går den bortom sidan. Finns det något sätt att få det att slå in automatiskt?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Paul,
Jag kan tyvärr inte hjälpa dig med det än. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
HEJ Jag fick rullgardinsmenyn att fungera. jag har en fråga
När jag gör valet för den första rullgardinsmenyn, finns det något sätt att automatisera de koordinerande och relaterade valen för följande rullgardinsmeny? Till exempel. Jag har en förälders rullgardinsadvokat, de två rullgardinsmenyn för barn är titel respektive telefonnummer. När jag väljer advokatens namn vill jag att de relaterade underordnade rullgardinsmenyn automatiskt fyller i titel och telefonnummer. Hur skulle jag kunna göra det?

Tack på förhand.

Sylvia
Denna kommentar minimerades av moderatoren på webbplatsen
God dag,
Jag kan tyvärr inte hjälpa dig med det än. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att lägga till flera kategorifält baserat på ett val? till exempel måste jag säga Välj "Vin", men jag måste kunna välja 5 alternativ (fruktig, röd, stark, etc...) från de 10 möjliga alternativen i den andra rullgardinsmenyn. Jag följde instruktionerna ovan och fungerar bra på ett fält med bara ett annat beroende fält. Men jag behöver 5 beroende fält, alla lika utlösta av det ena fältet i det här fallet "vin". Jag duplicerar rullgardinsfältet det fungerar inte, jag försöker lägga till ett andra fält till koden, men är inte säker på hur: ActiveDocument.FormFields("ddCategory") och ("ddCategory2")
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ed,
Jag kan tyvärr inte hjälpa dig med det. Tack för din kommentar.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Hur kan jag duplicera kategorirutan? Jag har använt koden ovan och fungerar bra, men bara för en box. Vad gör jag i koden om jag till exempel behöver välja upp till 3 frukter när jag väl har valt fruktgruppen? Jag duplicerar fältet jag skapade men bara ett fungerar.
---------------------
Välja
FRUKT: banan
äpple
"Välj föremål"


----------------------------------
Välja
Grönsak: Kål
lök
"Välj föremål"
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för denna mycket användbara resurs.

Är det möjligt att upprepa samma beroende rullgardinsmeny flera gånger i ett formulär?

Jag behöver formulärutfyllaren för att tilldela en kategori till varje ny rad (men med samma alternativ varje gång). Jag har framgångsrikt skapat rullgardinsmenyerna men när jag begränsar redigeringen för att testa verkar de återställa sig själva när jag arbetar ner i raderna.

Tack
amy
Denna kommentar minimerades av moderatoren på webbplatsen
Jag använder samma kod men texten som jag ersätter ddcategory med har 100 plus ord. Finns det någonstans att slå in texten för att förhindra att den försvinner från sidan och försvinner?
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har samma problem!! :0
Denna kommentar minimerades av moderatoren på webbplatsen
سلام من همه مراحل رو رفتم ولی درآخر وقتی از لیست اول یه استان رو انتخاب می کنم تویه لیست دوم فقط شهر های اون استان رو نمیاره
چیکار باید بکنم؟
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, av någon anledning kan jag inte ändra något annat i word-filen om rullgardinsmenyn är aktiv. Finns det något sätt att undvika det?

Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Jag har samma problem har någon kunnat hjälpa till med detta
Denna kommentar minimerades av moderatoren på webbplatsen
Detta var oerhört hjälpsamt, tack.
Jag har en fråga, finns det ett sätt att ändra koden så att när jag väljer ett nytt objekt från den första rullgardinsmenyn, kommer den beroende att rensa upp?
Denna kommentar minimerades av moderatoren på webbplatsen
Ursäkta det sena svaret, snubblade in på denna sida först idag :-)
Det gör den redan. Den första satsen i Välj fallet ... End select-konstruktion rensar den andra listan. Om inget av kriterierna är uppfyllt läggs inget till.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, tack för den detaljerade handledningen, men jag har en fråga eftersom ordet mall är för andras användning, 
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, många tack för den detaljerade handledningen, men jag har en fråga eftersom ordet mall är för andras användning. Du nämnde skyddsläge och ett lösenord är ett måste, detta kan göras om jag säger till dem lösenordet, då finns det en konflikt: det finns några andra tomrum som måste fyllas i, detta kan inte göras endast om skyddsläget är av. Vad ska jag göra? Finns det någon metod för att tillgodose båda behoven?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,

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.

Är det möjligt i Outlook/Aufgaben?



Tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Du kan skapa en rullgardinslista med anpassat fält i Outlook Task-fönstret genom att följa stegen i den här artikeln:
Hur lägger man till en rullgardinslista med anpassad arkiverad i Outlook-uppgiftsfönstret?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
Eller skapa en rullgardinslista i Word och kopiera och klistra in den i uppgiftsfönstret efter behov.
Men om du vill skapa beroende rullgardinslistor i Outlook Task, har ingen metod hittats ännu.
Ledsen för det.
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL