Как да създадете динамични каскадни списъчни полета в Excel?
Може да знаете как да създадете падащ списък за каскадно валидиране в Excel. Как обаче да създадете динамични каскадни списъчни полета в Excel? Тази статия представя метод на VBA за свалянето му.
Създавайте динамични каскадни списъци с VBA код
Създавайте динамични каскадни списъци с VBA код
Както е показано на екранната снимка по-долу, трябва да създадете родителско списъчно поле, съдържащо уникалните стойности на колоната Напитка, и да покажете всички съответстващи стойности във второто списъчно поле въз основа на избора в родителското списъчно поле. Следният VBA код ви помага да го постигнете. Моля, направете следното.
1. Първо, трябва да извлечете всички уникални стойности от колоната Drink. Изберете празна клетка, въведете формула за масив =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") в Формула Бар, след което натиснете Ctrl + Превключване + Въведете ключ. След това плъзнете Дръжка за пълнене за да получите всички уникални стойности. Вижте екранна снимка:
Забележка: Във формулата, $A$2:$A$11 е диапазонът, от който ще извлечете уникални стойности. J1 е клетката отгоре, където се намира вашата формула.
тип: Ако формулата е твърде трудна за запомняне и работа, Изберете Дублирани и уникални клетки полезност на Kutools за Excel ще бъде добър избор за бързо извличане на всички уникални стойности от колона.
Моля, изберете колоната, която съдържа уникални стойности, от които ще извличате. След това активирайте помощната програма, като щракнете Kutools > Изберете > Изберете Дублирани и уникални клетки. В Изберете Дублирани и уникални клетки диалогов прозорец, изберете Всички уникални (включително първите дубликати) и щракнете върху OK бутон. След това всички уникални стойности се избират в колоната. Моля, копирайте ги и ги поставете на ново място. Вижте екранна снимка:
Kutools за Excel: с повече от 200 удобни добавки за Excel, безплатни за изпробване без ограничение за 60 дни. Изтеглете и изпробвайте безплатно сега!
2. Вмъкнете две списъчни полета отделно, като щракнете Софтуерен Инженер > Поставете > Списъчно поле (ActiveX Control). Вижте екранна снимка:
3. Щракнете с десния бутон върху родителското списъчно поле и изберете Имоти от контекстното меню. В Имоти диалогов прозорец, променете (Име) поле към Пия или друго име, както ви е необходимо, въведете диапазона от клетки, съдържащ извлечените уникални стойности в ListFillRange поле и затворете диалоговия прозорец.
4. Повторете стъпка 3, за да промените второто списъчно поле (Име) поле към елемент в Имоти диалогов прозорец.
5. Щракнете с десния бутон върху раздела на листа и изберете Преглед на кода от менюто с десен клик. След това копирайте под VBA кода в прозореца на кода. Вижте екранна снимка:
VBA код: Създайте динамични каскадни списъчни полета в Excel
Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
Dim I, xRows As Long
Dim xRg As Range
Dim xRegStr As String
Application.ScreenUpdating = False
xRegStr = Me.Drink.Text
Set xRg = Range("A2:A11")
xRows = xRg.Rows.Count
If xRegStr <> xPreStr Then
Me.Item.Clear
'Me.OtherListBoxName.Clear
Set xRg = xRg(1)
For I = 1 To xRows
If xRg.Offset(I - 1).Value = xRegStr Then
Me.Item.AddItem xRg.Offset(I - 1, 1).Value
'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
End If
Next
xPreStr = xRegStr
End If
Application.ScreenUpdating = True
End Sub
бележки: В кода Drink и Item са имената на две списъчни кутии, променете ги на вашите собствени имена.
6. Натисни Друг + Q ключове за затваряне на Microsoft Visual Basic за приложения прозорец.
7. Изключете режима на проектиране, като щракнете Софтуерен Инженер > Режим на проектиране.
Отсега нататък, когато избирате какъвто и да е вид напитка, като например Кафе в родителското поле със списък, всички елементи за кафе ще се показват във второто. Изборът на чай или вино ще покаже само елементите чай или вино във второто списъчно поле. Вижте екранна снимка:
Още по темата:
- Как да изчистя зависима клетка от падащ списък, след като изберете променена в Excel?
- Как да създадете зависими каскадни падащи списъци в Excel?
- Как да попълвам автоматично други клетки при избиране на стойности в падащия списък на Excel?
- Как да създадете календар с падащ списък в Excel?
- Hкак да запишете или задържите селекции от ActiveX списъчни полета в Excel?
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!