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

如何在Word文檔中創建相關的下拉列表?


如左圖所示,您需要根據第一個下拉列表中的選項限制第二個下拉列表中的選項,您該怎麼做? 本文將向您展示一種在 Word 文檔中創建依賴下拉列表的方法。

使用VBA代碼在Word中創建相關的下拉列表


使用VBA代碼在Word中創建相關的下拉列表

下面的 VBA 代碼可以幫助您在 Word 文檔中創建依賴下拉列表。 請按照說明一步一步來。

1.首先,您需要在Word文檔中插入兩個下拉列表。 請點擊 開發人員 > 舊版表格 > 下拉式表格欄位。 看截圖:

2.右鍵單擊第一個下拉列表(此下拉列表應為父列表),然後單擊 屬性。 見截圖:

3.在開幕 下拉表單字段選項 對話框,您需要:

3.1將類別輸入 下拉項目 框,然後單擊 加入 按鈕,重複該操作,直到將所有類別添加到下拉列錶框中的項目中。

3.2輸入 吃貨書籤 框。

3.3點擊 OK 按鈕。 看截圖:

4.右鍵單擊第二個下拉列表,單擊 氟化鈉性能 打開它的 下拉表單字段選項 對話框,然後在對話框中輸入 dd類別書籤 框並單擊 OK 按鈕。 看截圖:

5。 按 其他 + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

6。 在裡面 Microsoft Visual Basic for Applications 窗口中,單擊 插入 > 模塊 然後將下面的VBA代碼複製到“模塊”窗口中。

VBA代碼:在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

筆記:

1.在代碼中,請根據需要更改每種情況下的項目。

2. 吃貨dd類別 應該與您在上面兩個中輸入的“書籤”選項匹配 下拉表單字段選項 對話框。

7.保存代碼,然後返回文檔。

8.右鍵單擊第一個下拉列表,然後單擊 氟化鈉性能 打開 下拉表單字段選項 對話框。 在對話框中,請從上方選擇上面的宏名稱(此處為Popolateddfood)。 Exit 下拉列表,然後單擊 OK 按鈕。

9.現在點擊 開發人員 > 限制編輯 如下圖所示。

10。 在裡面 限制編輯 窗格,您需要:

10.1)檢查 只允許這種類型的編輯 在文件中 框;

10.2)選擇 填寫表格 從下拉列表中選擇;

10.3)點擊 是的,開始執行保護 按鈕;

10.4)在 開始執行保護 對話框中,輸入密碼,然後單擊 OK 按鈕。 看截圖:

現在創建了一個依賴下拉列表。 在第一個下拉列表中選擇水果時,在第二個下拉列表中只能選擇水果類別。


推薦的Word生產力工具

 

Kutools For Word - 超過 100 Word 的高級功能, 節省您的 50% 時間

  • 複雜和重複的操作可以在幾秒鐘內完成一次處理。
  • 跨文件夾一次將多個圖像插入Word文檔。
  • 將文件夾中的多個Word文件合併並合併為所需順序。
  • 根據標題,分節符或其他條件將當前文檔拆分為單獨的文檔。
  • 在Doc和Docx之間,Docx和PDF之間轉換文件,用於常見轉換和選擇的工具集合等...
按評論排序
留言 (27)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
除了根據下拉選擇自動填充文本表單字段之外,是否有類似的代碼可以做幾乎完全相同的事情? 例如,在下拉列表中選擇一個特定的公司並讓一個文本表單字段自動填充公司所在的城市?
網站主持人對此評論進行了最小化
美好的一天,
對不起,可以幫助你。 感謝您的評論。
網站主持人對此評論進行了最小化
您可以將其添加到由多個部分組成的單個頁面上的多個區域嗎? 我能夠在文檔的一個部分中成功完成該過程,但是當我嘗試在同一頁面上完成相同的過程時,但在文檔的不同部分並使用新的下拉選項時,只有我第一個添加的框正在工作,而不是第二部分中的那些..
網站主持人對此評論進行了最小化
嗨,英格麗德,
假設您的文檔中有三組依賴下拉列表。 如果您需要所有依賴的下拉列表生效,請應用以下 VBA 代碼並進行以下設置:

在我們在文章中提到的第 4 步和第 5 步中,現在您需要進行以下更改:
1.對於第一組依賴下拉列表,請進入每個下拉列表的屬性窗口,將書籤分別指定為ddfood1和ddCategory1;
2. 對於第二組依賴下拉列表,請進入每個下拉列表的屬性窗口,將書籤分別指定為ddfood2和ddCategory2;
2.對於第三組依賴下拉列表,請進入每個下拉列表的屬性窗口,將書籤分別指定為ddfood3和ddCategory3;

然後完全按照我們在文章中提供的方式完成整個設置。

VBA代碼:
子填充食物()
'更新 Extendoffice 2019/03/18
將 xDirection 調暗為 FormField
將 xState 調暗為 FormField
將 xRng 調暗為範圍
將 xFoodBM、xCategoryBM 調暗為字符串
設置 xRng = Selection.Range
在錯誤恢復下一頁
對於 i = 1 到 ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & 我
xCategoryBM = "ddCategory" & 我
設置 xDirection = ActiveDocument.FormFields(xFoodBM)
設置 xState = ActiveDocument.FormFields(xCategoryBM)
If (Not (xState Is Nothing)) And (Not (xDirection Is Nothing)) Then
使用 xState.DropDown.ListEntries
。清除
選擇案例 xDirection.Result
案例“水果”
.添加“蘋果”
.添加“香蕉”
.添加“桃子”
.添加“荔枝”
.添加“西瓜”
案例“蔬菜”
.添加“捲心菜”
.添加“洋蔥”
案例“肉”
.添加“豬肉”
.添加“牛肉”
.添加“羊肉”
最終選擇
結束
如果結束
設置 xDirection = 無
設置 xState = 無
下一頁
xRng.選擇
END SUB
網站主持人對此評論進行了最小化
這可以在舊版本的 Word 中完成還是必須保存為某種文檔類型?
網站主持人對此評論進行了最小化
嗨,瑪麗,
你指的是哪個版本?
網站主持人對此評論進行了最小化
你好!
字段中的名稱是否有限制(例如 2 個單詞,或使用特殊字符)?
字段 A(公司名稱)字段 B(董事姓名,例如 Jack Black)。
謝謝!
網站主持人對此評論進行了最小化
你好馬克,
是的,該字段中的名稱存在限制。
對於帶有空格的多個單詞,您需要將空格替換為下劃線,例如 Company_Name。
並且書籤名稱不能包含任何特殊字符,例如 / \ : * ? " < > |
謝謝你的評論。
網站主持人對此評論進行了最小化
嗨,

我們如何換行? 我按照步驟操作,它工作正常,除了當第二個列表太長時,它超出了頁面。 有沒有辦法讓它自動包裝?
網站主持人對此評論進行了最小化
喜保,
抱歉還不能幫你。 謝謝你的評論。
網站主持人對此評論進行了最小化
嗨,我讓下拉菜單開始工作。 我有個問題
當我為第一個下拉菜單進行選擇時,有沒有辦法自動為以下下拉菜單進行協調和相關選擇? 例如。 我有一個父母下拉律師,兩個孩子下拉分別是標題和電話號碼。 當我選擇律師姓名時,我希望相關的子下拉菜單自動填充標題和電話號碼。 我怎麼能做到這一點?

在此先感謝。

西爾維亞
網站主持人對此評論進行了最小化
美好的一天,
抱歉還不能幫你。 謝謝你的評論。
網站主持人對此評論進行了最小化
有沒有辦法根據一個選擇添加多個類別字段? 例如,我需要說選擇“葡萄酒”,但我需要能夠從第二個下拉字段列表中的 5 個可能選項中選擇 10 個選項(果味、紅色、濃烈等)。 我按照上面的說明操作,並且只在一個字段和另一個依賴字段上運行良好。 但我需要 5 個相關字段,在這種情況下由一個字段觸發“葡萄酒”。 我複制了它不起作用的下拉字段,我試圖在代碼中添加第二個字段,但不確定如何: ActiveDocument.FormFields("ddCategory") 和 ("ddCategory2")
網站主持人對此評論進行了最小化
嗨,Ed,
抱歉不能幫你。 感謝您的評論。
網站主持人對此評論進行了最小化
你好,我怎樣才能複制類別框? 我已經使用了上面的代碼並且效果很好,但只適用於一個盒子。 例如,如果我在選擇水果組後需要選擇最多 3 個水果,我應該在代碼中做什麼? 我正在復制我創建的字段,但只有一個有效。
---------------------
選擇
水果:香蕉
蘋果
“選擇物品”


----------------------------------
選擇
蔬菜:捲心菜
洋蔥
“選擇物品”
網站主持人對此評論進行了最小化
感謝您提供這個非常有用的資源。

是否可以在表單中多次重複相同的依賴下拉菜單?

我需要表單填充器為每個新行分配一個類別(但每次都使用相同的選項)。我已經成功創建了下拉列表,但是當我限制編輯以測試它們時,它們似乎會在我向下工作時自行重置。

謝謝
艾米
網站主持人對此評論進行了最小化
我正在使用相同的代碼,但是我用 ddcategory 替換的文本有 100 多個單詞。 無論如何要包裝文本以防止它離開頁面並消失?
網站主持人對此評論進行了最小化
我也有同樣的問題!! :0
網站主持人對此評論進行了最小化
犧牲品證م。
كیکار باید بکنم؟
網站主持人對此評論進行了最小化
您好,由於某種原因,如果下拉列表處於活動狀態,我無法修改 word 文件中的任何其他內容。 有沒有辦法避免這種情況?

謝謝
網站主持人對此評論進行了最小化
我有同樣的問題有人能幫助解決這個問題嗎
網站主持人對此評論進行了最小化
這非常有幫助,謝謝。
我有一個問題,有沒有辦法修改代碼,以便當我從第一個下拉列表中選擇一個新項目時,依賴項會清除?
網站主持人對此評論進行了最小化
抱歉回复晚了,今天才偶然發現這個頁面:-)
它已經這樣做了。 Select case 中的第一條語句... End select 構造清除了第二個列表。 如果不滿足任何條件,則不添加任何內容。
網站主持人對此評論進行了最小化
嗨,謝謝你的詳細教程,但是我有一個問題,因為這個詞模板是給別人使用的, 
網站主持人對此評論進行了最小化
嗨,非常感謝詳細教程,但我有一個問題,因為這個詞模板是供他人使用的。 你提到保護模式和密碼是必須的,如果我告訴他們密碼就可以了,那麼就有衝突了:還有一些其他的空白需要填寫,只有保護模式才能做到這一點離開。 我該怎麼辦? 有什麼方法可以同時滿足這兩個需求嗎?
網站主持人對此評論進行了最小化
您好!

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。

das möglich 在 Outlook/Aufgaben 中嗎?



謝謝
網站主持人對此評論進行了最小化
嗨,
您可以按照本文中的步驟在 Outlook 任務窗口中創建帶有自定義字段的下拉列表:
如何在 Outlook 任務窗口中添加自定義歸檔的下拉列表?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
或者在 word 中創建一個下拉列表,然後根據需要將其複制並粘貼到任務窗口中。
但是如果你想在 Outlook 任務中創建依賴下拉列表,目前還沒有找到方法。
我們對此深感抱歉。
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護