Как создать раскрывающийся список с множественным выбором в Excel

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

Рассмотрим сценарий, в котором вам нужно назначить несколько задач членам команды с помощью раскрывающегося списка. С функциями Excel по умолчанию единственный способ удалить неправильно назначенную задачу — очистить все содержимое ячейки и начать заново. Имея возможность удалять отдельные элементы из выбора, команда может легко изменять назначения задач без путаницы или ошибок.

Приведенный ниже код реализует функцию удаления элемента простым и интуитивно понятным способом: первый щелчок по элементу добавляет его к выборке, а второй щелчок по тому же элементу удаляет его из выбора.

Код VBA для создания раскрывающегося списка с множественным выбором, который позволяет удалять выбранные элементы

Опция Explicit Private Sub Worksheet_Change(ByVal Destination As Range) Dim rngDropdown As Range Dim oldValue As String Dim newValue As String Dim DelimiterType As String DelimiterType = “,” Dim DelimiterCount As Integer Dim TargetType As Integer Dim i As Integer If Destination.Count > 1 Затем выйдите из подпрограммы при ошибке. Возобновите следующий набор. rngDropdown = Cells.SpecialCells(xlCellTypeAllValidation) При ошибке. Application.ScreenUpdating = False Application.EnableEvents = False newValue = Destination.Value Application.Undo oldValue = Destination.Value Destination.Value = newValue If oldValue <> “” Then If newValue <> “” Then If oldValue = newValue or oldValue = newValue & Replace(DelimiterType, ” “, “”) Or oldValue = newValue & DelimiterType Then ‘ оставить значение, если в списке есть только одно oldValue = Replace(oldValue, DelimiterType, “”) oldValue = Replace(oldValue, Replace(DelimiterType , ” “, “”), “”) Destination.Value = oldValue ElseIf InStr(1, oldValue, DelimiterType и newValue) Then oldValue = Replace(oldValue, newValue, “”) ‘удаляет существующее значение из списка при выборе это снова Destination.Value = oldValue ElseIf InStr(1, oldValue, newValue & Replace(DelimiterType, ” “, “”)) Then oldValue = Replace(oldValue, newValue, “”) Destination.Value = oldValue Else Destination.Value = oldValue & DelimiterType & newValue End If Destination.Value = Replace(Destination.Value, Replace(DelimiterType, ” “, “”) & Replace(DelimiterType, ” “, “”), Replace(DelimiterType, ” “, “”)) ‘ удалить лишние запятые и пробелы Destination.Value = Replace(Destination.Value, DelimiterType & Replace(DelimiterType, ” “, “”), Replace(DelimiterType, ” “, “”)) If Destination.Value <> “” Then If Right (Destination.Value, 2) = DelimiterType Then ‘ удалить запятую и пробел в конце Destination.Value = Left(Destination.Value, Len(Destination.Value) – 2) End If End If InStr(1, Destination.Value, DelimiterType) = 1 Then ‘ удалить запятую и пробел в качестве первых символов Destination.Value = Replace(Destination.Value, DelimiterType, “”, 1, 1) End If InStr(1, Destination.Value, “,”) = 1 Then ‘ удалить запятую в качестве первого символа Destination.Value = Replace(Destination.Value, Replace(DelimiterType, ” “, “”), “”, 1, 1) End If DelimiterCount = 0 For i = 1 To Len(Destination.Value) If InStr(i, Destination.Value, Replace(DelimiterType, ” “, “”)) Then DelimiterCount = DelimiterCount + 1 End If Next i If DelimiterCount = 1 Then ‘ удалить запятую, если последний символ Destination.Value = Replace(Destination.Value , DelimiterType, “”) Destination.Value = Replace(Destination.Value, Replace(DelimiterType, ” “, “”), “”) End If End If End If Application.EnableEvents = True Application.ScreenUpdating = True End If exitError: Application.EnableEvents = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub

В приведенной ниже демонстрации показано, как раскрывающийся список множественного выбора с функцией удаления работает в Excel. Пользователи могут выбирать несколько параметров из списка проверки данных и вносить коррективы на лету. Оптимизированный и эффективный подход к управлению выборами!
Выберите и удалите несколько элементов в раскрывающемся списке Excel.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *