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 Введіть ddfood в закладка коробка

3.3 Натисніть кнопку OK кнопку. Дивіться знімок екрана:

4. Клацніть правою кнопкою миші другий випадаючий список, натисніть властивості щоб відкрити її Параметри поля розкривного поля форми і у діалоговому вікні введіть ddКатегорія в закладка і натисніть на OK кнопку. Дивіться знімок екрана:

5 Натисніть кнопку інший + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

6 В Microsoft Visual Basic для додатків вікна, натисніть Insert > Модуль потім скопіюйте код 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. ddfood і ddКатегорія має відповідати параметрам закладки, які ви ввели у двох вищезазначених Параметри поля розкривного поля форми діалогові вікна.

7. Збережіть код і поверніться до документа.

8. Клацніть правою кнопкою миші перший випадаючий список і натисніть властивості відкрити Параметри поля розкривного поля форми діалогове вікно. У діалоговому вікні, будь-ласка, виберіть вище назва макросу (тут Popolateddfood) з вихід , а потім клацніть на OK кнопки.

9. Тепер натисніть Розробник > Обмежити редагування як показано на знімку екрана.

10 В Обмежити редагування панелі, вам потрібно:

10.1) Перевірте Дозволити лише цей тип редагування в документі коробка;

10.2) Виберіть Заповнення форм опція зі спадного списку;

10.3) Клацніть на Так, почати забезпечувати захист кнопка;

10.4) У Почніть застосовувати захист , введіть пароль і натисніть на OK кнопку. Дивіться знімок екрана:

Тепер буде створено залежний спадний список. Якщо вибрати Фрукти в першому спадному списку, у другому можна вибрати лише категорії фруктів.


Рекомендовані засоби підвищення продуктивності слів

 

Kutools для Word - Більше 100 вдосконалених функцій для Word, економите свій 50% часу

  • Складні та повторювані операції можна виконати одноразово за кілька секунд.
  • Вставте кілька зображень між папками в документ Word одночасно.
  • Об’єднайте та об’єднайте декілька файлів Word у папках в одне із потрібним замовленням.
  • Поділіть поточний документ на окремі документи відповідно до заголовка, розділу розділу чи інших критеріїв.
  • Перетворюйте файли між Doc та Docx, Docx та PDF, колекцією інструментів для загальних перетворень та виділення тощо ...
Коментарі (27)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
Чи існує подібний код, щоб зробити майже те саме, за винятком того, що поле текстової форми автоматично заповнюється залежно від вибору, що випадає? Наприклад, вибравши конкретну компанію в спадному меню та автоматично заповнивши в полі текстової форми місто, де розташована компанія?
Цей коментар був мінімізований модератором на сайті
Добрий день,
Вибачте, можу вам у цьому допомогти. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Чи можете ви додати це до кількох областей на одній сторінці, що складається з кількох розділів? Мені вдалося успішно завершити процес в одному розділі мого документа, але коли я намагаюся завершити той самий процес, перебуваючи на тій же сторінці, але в іншому розділі мого документа та з новими параметрами спадного меню, лише мої перші додані поля працюють, а не ті, що в другому розділі..
Цей коментар був мінімізований модератором на сайті
Привіт Інгрід,
Припустимо, що у вашому документі є три групи залежних спадних списків. Якщо вам потрібно, щоб усі залежні розкривні списки почали діяти, застосуйте наведений нижче код VBA та виконайте наведені нижче налаштування:

На кроці 4 і 5, про які ми згадували в статті, тепер вам потрібно зробити такі зміни:
1. Для першої групи залежних розкривних списків увійдіть у вікно властивостей кожного випадаючого списку та вкажіть окремо закладку як ddfood1 та ddCategory1;
2. Для другої групи залежних спадних списків, будь ласка, увійдіть у вікно властивостей кожного випадаючого списку та вкажіть Закладку як ddfood2 та ddCategory2 окремо;
2. Для третьої групи залежних спадних списків, будь ласка, увійдіть у вікно властивостей кожного випадаючого списку та вкажіть Закладку як ddfood3 та ddCategory3 окремо;

Потім йдіть точно так, як ми надали в статті, щоб завершити всі налаштування.

Код VBA:
Підзаселеніdfood()
'Оновлення до Extendoffice 2019/03/18
Dim xDirection як FormField
Dim xState як FormField
Dim xRng As Range
Dim xFoodBM, xCategoryBM як рядок
Встановіть xRng = Вибір.Діапазон
On Error Resume Next
Для i = 1 До ActiveDocument.FormFields.Count
xFoodBM = "ddfood" & i
xCategoryBM = "ddCategory" & i
Встановити xDirection = ActiveDocument.FormFields(xFoodBM)
Встановити xState = ActiveDocument.FormFields(xCategoryBM)
Якщо (не (xState Is Nothing)) і (Not (xDirection Is Nothing)), то
За допомогою xState.DropDown.ListEntries
.Ясно
Виберіть Case xDirection.Result
Кейс "Фрукти"
.Додати "Яблуко"
.Додати "Банан"
.Додати "Персик"
.Додати "Лічі"
.Додати "Кавун"
Футляр «Овоч»
.Додати "капусту"
.Додати "цибулю"
Кейс "М'ясо"
.Додати "Свинина"
.Додати "Яловичину"
.Додати "Баранина"
End Select
Кінець з
End If
Встановіть xDirection = Нічого
Встановіть xState = Нічого
Далі
xRng.Виберіть
End Sub
Цей коментар був мінімізований модератором на сайті
чи можна це зробити в старіших версіях Word або потрібно зберегти як документ певного типу?
Цей коментар був мінімізований модератором на сайті
Привіт, Мері,
Яку версію ви маєте на увазі?
Цей коментар був мінімізований модератором на сайті
Привіт Там,
чи існують обмеження щодо імені в полі (наприклад, 2 слова або використання спеціальних символів)?
Як поле A (Назва компанії) Поле B (ім’я директора, як Джек Блек).
Спасибо!
Цей коментар був мінімізований модератором на сайті
Привіт Марк,
Так, є обмеження щодо імені в полі.
Для кількох слів із пробілами потрібно замінити пробіли нерозділеними, наприклад, Company_Name.
І назва закладки не може містити жодного зі спеціальних символів, наприклад / \ : * ? " < > |
Дякую за ваш коментар.
Цей коментар був мінімізований модератором на сайті
привіт,

Як ми виконуємо перенесення тексту? Я виконав крок, і він працює добре, за винятком того, що, коли другий список занадто довгий, він виходить за межі сторінки. Чи є спосіб, щоб він автоматично загорнувся?
Цей коментар був мінімізований модератором на сайті
Привіт Павло,
На жаль, поки що не можу вам допомогти. Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
Привіт, я запустив спадні меню. У мене є питання
Коли я роблю вибір для першого спадного меню, чи є спосіб автоматизувати координацію та пов’язаний вибір для наступних спадних меню? Наприклад. У мене є батьківський спадний список адвоката, два спадних списку дочірніх — це посада та номер телефону відповідно. Коли я вибираю ім’я адвоката, я хочу, щоб пов’язані дочірні спадні меню автоматично заповнювали назву та номер телефону. Як би я міг це зробити?

Спасибо заранее.

Сільвія
Цей коментар був мінімізований модератором на сайті
Добрий день,
На жаль, поки що не можу вам допомогти. Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
Чи є спосіб додати кілька полів категорії на основі одного вибору? наприклад, мені потрібно сказати Виберіть «Вино», але мені потрібно мати можливість вибрати 5 варіантів (фруктовий, червоний, міцний тощо) із 10 можливих варіантів у другому спадному списку полів. Я дотримувався інструкцій, наведених вище, і добре працює лише в одному полі з іншим залежним полем. Але мені потрібно 5 залежних полів, які все одно запускаються одним полем в даному випадку «вино». Я дублюю спадне поле, воно не працює, я намагаюся додати друге поле до коду, але не знаю як: ActiveDocument.FormFields("ddCategory") і ("ddCategory2")
Цей коментар був мінімізований модератором на сайті
Привіт, Ед,
Вибачте, не можу вам з цим допомогти. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Привіт, як я можу скопіювати поле категорій? Я використав код вище і працює добре, але тільки для однієї коробки. Що мені робити в коді, якщо, наприклад, мені потрібно вибрати до 3 фруктів після вибору групи Фрукти? Я дублюю створене поле, але працює лише одне.
---------------------
вибрати
ФРУКТИ: банан
apple
"вибрати предмет"


----------------------------------
вибрати
Овочі: капуста
лук
"вибрати предмет"
Цей коментар був мінімізований модератором на сайті
Дякую за цей дуже корисний ресурс.

Чи можна повторити одне й те саме залежне спадне меню кілька разів у формі?

Мені потрібен заповнювач форми, щоб призначити категорію кожному новому рядку (але з тими самими параметрами щоразу). Я успішно створив спадні списки, але коли я обмежую редагування для перевірки, вони, здається, скидаються, коли я працюю по рядках.

Дякую
Емі
Цей коментар був мінімізований модератором на сайті
Я використовую той самий код, але текст, на який я замінив ddcategory, містить більше 100 слів. Чи можна якось обернути текст, щоб запобігти його зникненню зі сторінки та зникненню?
Цей коментар був мінімізований модератором на сайті
У мене така ж проблема!! :0
Цей коментар був мінімізований модератором на сайті
سلام من همه مراحل رو رفتم ولی درآخر وقتی از لیست اول یه استان رو انتخاب ی کن توی لیست م فقط می бачення бачення бачення айнтує فقط ش می бачення бачення бачення айнтувати فقط ش початлиць бачення бачення فقط ش ñ ′гон бачення فقط ش ñ ñ праць бачення grیigrimigion бачення grیionigimus тація فقط یر початкову айнтувати فقط ش ñ ′гон бачення бачення فقط ′гон ه капалі
چیکار باید بکنم؟
Цей коментар був мінімізований модератором на сайті
Привіт, чомусь я не можу змінити нічого іншого у файлі word, якщо розкривний список активний. Чи є спосіб уникнути цього?

Дякую
Цей коментар був мінімізований модератором на сайті
У мене така ж проблема, чи хтось міг допомогти з цим
Цей коментар був мінімізований модератором на сайті
Це було надзвичайно корисно, дякую.
У мене є запитання, чи є спосіб змінити код, щоб, коли я виберу новий елемент із першого спадного списку, залежний елемент очищався?
Цей коментар був мінімізований модератором на сайті
Вибачте за пізню відповідь, тільки сьогодні натрапив на цю сторінку :-)
Це вже робить. Перший оператор всередині регістру Select ... 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 або Bezeichnung auwählen kann.

Ist das möglich в Outlook/Aufgaben?



Спасибо
Цей коментар був мінімізований модератором на сайті
привіт,
Ви можете створити спадний список із користувацьким полем у вікні завдання Outlook, виконавши кроки в цій статті:
Як додати розкривний список із спеціальним файлом у вікні завдань Outlook?
https://www.extendoffice.com/documents/outlook/4453-outlook-custom-fields-tasks-drop-down.html
Або створіть спадний список у word, а потім скопіюйте та вставте його у вікно Завдання, як вам потрібно.
Але якщо ви хочете створити залежні спадні списки в Завданні Outlook, метод ще не знайдено.
На жаль про це.
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL