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应用程序 窗口。

6。 在里面 Microsoft Visual Basic应用程序 窗口中,单击 插页 > 模块 然后将下面的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 To 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保护