Я хочу создать выпадающий список штатов, районов, подрайонов и т. Д. Выбирая одно из состояний из списка состояний drpoDown, выпадающий список округа должен содержать только список районов, принадлежащих этому конкретному состоянию , Как это сделать, используя код vba. Это действительно возможно?Dynamic DropDown in excel
ответ
Это немного грубо идея ... попробовать - я разработал все sheet2 Сначала создайте данных
[A1] [B1] [C1]
State Dist SubDist
State1 Dist1 SD1
State1 Dist1 SD1
State1 Dist1 SD1
State1 Dist1 SD2
State1 Dist1 SD2
State1 Dist2 SD1
State1 Dist2 SD1
State1 Dist2 SD2
State1 Dist2 SD2
State1 Dist2 SD2
State1 Dist3 SD3
State1 Dist3 SD3
State2 Dist1 SD1
State2 Dist1 SD1
State2 Dist1 SD1
State2 Dist1 SD2
State2 Dist1 SD2
State2 Dist2 SD1
State2 Dist2 SD1
State2 Dist2 SD2
State2 Dist2 SD2
State2 Dist2 SD2
State2 Dist3 SD3
State2 Dist3 SD3
Крит Критерии для Advance Фильтр [J1] [K1] [L1] Государственного Dist SubDist State1 dist1
Первый Добавьте уникальное состояние значения в раскрывающемся 1 «drpState» и назначить getDist() к раскрывающемуся государственному отбору (сделать более 2 для других selecitons как дист, к югу дист ...)
Создать 3 Dropdowns 'drpState' [Макро: getDist()], 'drpDist' [Macro: getSDist()], 'drpSDist'
Sub getDist()'<< Assign to State Selection
Call GetDropdownValue("drpState", Sheet2.Range("J2"))
Sheet2.Range("J1").CurrentRegion.Offset(1, 1).Clear
Call GetSubList("drpDist", 2, Sheet2.Range("O1"))
End Sub
Sub getSDist() '<< Assign to Destic Selection
Call GetDropdownValue("drpDist", Sheet2.Range("K2"))
Call GetSubList("drpSDist", 3, Sheet2.Range("O1"))
End Sub
Sub GetDropdownValue(ByVal DropdownName As String, OutPutRange As Range)
With Sheet2.DropDowns(DropdownName)
OutPutRange.Value = .List(.ListIndex)
End With
End Sub
Sub GetSubList(ByVal DropdownName As String, ByVal intLevel As Integer, ByVal OutPutRange As Range)
Dim rngMainData As Range
Dim rngList As Range
If OutPutRange.Value <> vbNullString Then
OutPutRange.CurrentRegion.Clear
End If
Set rngMainData = Sheet2.Range("A1").CurrentRegion.Columns(1).Resize(, intLevel)
rngMainData.AdvancedFilter xlFilterCopy, Sheet2.Range("J1").CurrentRegion.Columns(1).Resize(, intLevel), OutPutRange, True
With OutPutRange.CurrentRegion.Columns(intLevel)
Set rngList = .Offset(1).Resize(.Rows.Count - 1)
End With
With Sheet2.DropDowns(DropdownName)
.List = rngList.Value
End With
End Sub
Я думаю, что это поможет вам решить ваш вопрос .. .
Создание выпадающих списков с использованием drpDist FormControls ',' drpDist ' – Arya
O1 - это место, где будут отображаться отфильтрованные данные и K1 if выбранные данные из выпадающего списка [J], [K] [L] 1 ** Государственный \t \t Dist SubDist ** 2 State2 \t dist1 – Arya
http://1drv.ms/1MCuAqL – Arya
Скажем, у нас есть основной раскрывающийся в ячейке B2 на основе значений в колонке H:
Столбец I содержит вторичную раскрывающуюся информацию как разделенные запятой списки, каждый список в одной ячейке. Следующий макрос события обнаружит изменения в ячейке B2 и установит DV в ячейке C2 соответственно.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim v As Variant, r As Range
If Intersect(Target, Range("B2")) Is Nothing Then Exit Sub
If Range("B2").Value = "" Then Exit Sub
Application.EnableEvents = False
v = Target.Value
Set r = Range("H3:H5").Find(What:=v, After:=Range("H3")).Offset(0, 1)
v = r.Value
With Range("C2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=v
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Application.EnableEvents = True
End Sub
Поскольку это таблица кода, очень проста в установке и автоматическое использование:
- правой кнопкой мыши на название вкладки в нижней части окна Excel
- выберите View Code - это вызывает окно VBE
- вставить материал в и закройте окно VBE
Если у вас есть озабоченность сначала попробуйте на пробном листе.
Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003 года, вы должны сохранить файл как .xlsm, а не.XLSX
Чтобы удалить макрос:
- подвезти окна VBE как выше
- ясный код из
- закрыть окно VBE
Чтобы узнать больше о макросах в целом , см.:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
и
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Чтобы узнать больше о Event Macros (таблица кодов), см:
http://www.mvps.org/dmcritchie/excel/event.htm
Макросы должны быть разрешены для этой работы!
Вот как будет выглядеть C2 выпадающий:
Красивый ответ. Однако, не будет ли это просто поместить всю ценность клетки в новый DV: «бигль, мопс, колли»? Я думаю, что OP означает, что на основе одного выбора из списка в B2, появится другой список DV ** ** в C2. На каждой отдельной строке: «бигль» * следующая строка * «мопс» * следующая строка * «колли». –
@ BranislavKollár Дайте ему попробовать ............... * DV * может быть настроен либо с частичным столбцом ячеек, либо с помощью строки, разделенной запятой **. –
Amazing. Работает как шарм.Спасибо за то, что поделился этим. –
- 1. Excel Dynamic Dropdown Перейти к ячейке
- 2. Acumatica Dynamic MultiSelect Dropdown
- 3. Rails4 Dynamic Select Dropdown
- 4. onchange select (dynamic) dropdown
- 5. Dynamic Dependent Dropdown
- 6. ASP.NET Dynamic Dropdown Validation
- 7. php jquery dynamic dropdown
- 8. multiselect dropdown in excel using phpexcel
- 9. Excel Multi select options in dropdown
- 10. Dynamic Dropdown mysql apostrophe issue
- 11. php dynamic dropdown box content
- 12. Laravel 5.2 dropdown default dynamic
- 13. Joomla RSForm Pro Dynamic Dropdown
- 14. Dynamic Dropdown List Mixing Options
- 15. JQuery/PHP Dynamic Dropdown Issue
- 16. spring mvc dynamic on change dropdown to other dropdown
- 17. Dynamic PowerQuery в Excel
- 18. Cascading Dropdown in Handsontable
- 19. Fade in dropdown
- 20. dropdown disable in asp.net
- 21. select dropdown in codeigniter
- 22. Dynamic Excel гиперссылок Excel 2003
- 23. Clear ribbon dropdown C# excel add-in 2010
- 24. Excel: динамически числовая Dropdown
- 25. Excel MAC VBA Dropdown
- 26. Bootstrap Dropdown dynamic ajax list items
- 27. Dynamic Dropdown Bootstrap для каждого пользователя
- 28. Dynamic Dropdown в списке с изображением
- 29. Dynamic Select Dropdown Wordpress Передовое настраиваемое поле
- 30. Python Mechanize with Dynamic Dropdown Selection
Является ли это действительно необходимо использовать VBA? Это можно сделать без VBA. –
Не нужно использовать VBA. –
Одно видео стоит тысячи слов: https://www.youtube.com/watch?v=-78bH0RZ7MA –