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

Как создать зависимые выпадающие списки в документе Word?


Как показано на скриншоте слева, вам нужно ограничить выбор во втором раскрывающемся списке на основе параметра в первом раскрывающемся списке, как вы можете это сделать? В этой статье будет показан способ создания зависимых раскрывающихся списков в документе Word.

Создавать зависимые выпадающие списки в Word с кодом VBA


Создавать зависимые выпадающие списки в Word с кодом VBA

Приведенный ниже код VBA может помочь вам создать зависимый раскрывающийся список в документе Word. Пожалуйста, следуйте инструкциям шаг за шагом.

1. Во-первых, вам нужно вставить два раскрывающихся списка в ваш документ Word. Нажмите разработчик > Устаревшие формы > Раскрывающееся поле формы. Смотрите скриншот:

2. Щелкните правой кнопкой мыши первый раскрывающийся список (этот раскрывающийся список должен быть родительским) и щелкните Свойства. Смотрите скриншот:

3. В дебюте Параметры поля раскрывающейся формы диалоговое окно, вам необходимо:

3.1 Введите категорию в Выпадающий элемент и нажмите Добавить кнопку, повторяйте операцию, пока все категории не будут добавлены в раскрывающийся список Элементы в.

3.2 Ввод ддфуд в закладка пунктом.

3.3 Щелкните значок OK кнопка. Смотрите скриншот:

4. Щелкните правой кнопкой мыши второй раскрывающийся список, щелкните Свойства открыть Параметры поля раскрывающейся формы диалоговое окно и в диалоговом окне введите ддКатегория в закладка и нажмите 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. ддфуд и ддКатегория должны соответствовать параметрам закладки, которые вы ввели в двух предыдущих Параметры поля раскрывающейся формы диалоговые окна.

7. Сохраните код и вернитесь к документу.

8. Щелкните правой кнопкой мыши первый раскрывающийся список и выберите Свойства для открытия Параметры поля раскрывающейся формы диалоговое окно. В диалоговом окне выберите указанное выше имя макроса (здесь Popolateddfood) из Выход раскрывающийся список, а затем щелкните 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
Dim xDirection как FormField
Dim xState как FormField
Dim xRng как диапазон
Dim xFoodBM, xCategoryBM As String
Установите xRng = Selection.Range
On Error Resume Next
Для i = 1 в ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & я
xCategoryBM = "ddCategory" & я
Установить xDirection = ActiveDocument.FormFields(xFoodBM)
Установите xState = ActiveDocument.FormFields(xCategoryBM)
Если (Нет (xState Ничего)) И (Нет (xDirection Ничего)) Тогда
С xState.DropDown.ListEntries
.Прозрачный
Выберите дело xDirection.Result
Кейс "Фрукт"
.Добавить «Яблоко»
.Добавить "Банан"
.Добавить "Персик"
.Добавить "Личи"
.Добавить "Арбуз"
Кейс "Овощ"
.Добавить "Капусту"
.Добавить "Лук"
Кейс "Мясо"
.Добавить "Свинина"
.Добавить "Говядина"
.Добавить "Баранину"
End Select
Конец с
End If
Установить xDirection = Ничего
Установите xState = Ничего
Далее
xRng.Select
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
можно ли это сделать в более старых версиях Word или нужно сохранить как документ определенного типа?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Мэри,
Какую версию вы имеете в виду?
Этот комментарий был сведен к минимуму модератором на сайте
Всем привет,
есть ли ограничения на имя в поле (например, 2 слова или использование специальных символов)?
Например, Поле A (название компании) Поле B (имя директора, например, Джек Блэк).
Благодаря!
Этот комментарий был сведен к минимуму модератором на сайте
Привет Марк,
Да, есть ограничения с именем в поле.
Для нескольких слов с пробелами вам необходимо заменить пробелы подчеркиваниями, такими как Company_Name.
И имя закладки не может содержать никаких специальных символов, таких как / \ : * ? " < > |
Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Здравствуйте,

Как мы переносим текст? Я выполнил этот шаг, и он работает нормально, за исключением того, что когда второй список слишком длинный, он выходит за пределы страницы. Есть ли способ сделать его автоматическим?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Павел,
Извините, пока не могу вам с этим помочь. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, я получил раскрывающиеся списки для работы. У меня есть вопрос
Когда я делаю выбор для первого раскрывающегося списка, есть ли способ автоматизировать координирование и связанные выборы для следующих раскрывающихся списков? Например. У меня есть родительский выпадающий список «Адвокат», два выпадающих списка дочерних элементов - это «Название» и «Номер телефона» соответственно. Когда я выбираю имя поверенного, я хотел бы, чтобы выпадающие списки связанных дочерних элементов автоматически заполняли должность и номер телефона. Как я смогу это сделать?

Заранее спасибо.

Сильвия
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Извините, пока не могу вам с этим помочь. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Есть ли способ добавить несколько полей категорий на основе одного выбора? например, мне нужно сказать «Выбрать вино», но мне нужно иметь возможность выбрать 5 вариантов (фруктовый, красный, крепкий и т. д.) из 10 возможных вариантов во втором раскрывающемся списке полей. Я следовал приведенным выше инструкциям и хорошо работает в одном поле только с одним другим зависимым полем. Но мне нужно 5 зависимых полей, все равно запускаемых одним полем в данном случае "вино". Я дублирую раскрывающееся поле, оно не работает, я пытаюсь добавить второе поле в код, но не знаю, как: ActiveDocument.FormFields("ddCategory") и ("ddCategory2")
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Эд,
Извините, не могу вам в этом помочь. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Привет, как я могу продублировать поле категорий? Я использовал приведенный выше код и работает хорошо, но только для одной коробки. Что мне делать в коде, если, например, мне нужно выбрать до 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 Menus 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 Task, способ пока не найден.
К сожалению об этом.
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL