Объедините функции множественного выбора и автозаполнения поиска в раскрывающемся списке проверки данных - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть выпадающий список проверки данных, для которого я использую приведенный ниже макрос, чтобы включить множественный выбор. Мне нужно объединить его с функцией автозаполнения поиска, как для веб-поисковой системы.

Например:

  1. Я набираю сначала «Ban», затем он проверяет в списке проверки данных все слова, содержащие «ban», а выпадающий список сокращается, чтобы иметь только соответствующие слова. Я выбираю слово «Банан», и теперь оно отображается в ячейке.
  2. Затем введите слово «ягода», и выпадающий список будет сокращен только до соответствующих слов. Я выбираю слово «Клубника», и теперь в ячейке отображается текст «Банан, клубника».

List

Data validation with multiple selection feature (only)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'That code is for the multiple selection. It allows the user to select multiple items one by one in the dropdown list. Then they will be separated by one coma.
Dim Oldvalue As String
Dim Newvalue As String

Application.EnableEvents = True
On Error GoTo Exitsub

If Target.Address = "$E$3" Then
  If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
  Else: If Target.Value = "" Then GoTo Exitsub Else
    Application.EnableEvents = False
    Newvalue = Target.Value
    Application.Undo
    Oldvalue = Target.Value
      If Oldvalue = "" Then
        Target.Value = Newvalue
      Else
        If InStr(1, Oldvalue, Newvalue) = 0 Then
            Target.Value = Oldvalue & ", " & Newvalue
      Else:
        Target.Value = Oldvalue
      End If
    End If
  End If
End If

Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True

End Sub

'== SOURCE ==
'https://trumpexcel.com/select-multiple-items-drop-down-list-excel/

До сих пор мне удалось с помощью учебника без VBA применить функцию автозаполнения поиска. Затем я попытался изменить формулы так, чтобы при автозаполнении поиска учитывался только текст рядом с последней комой (справа). После моей попытки я чувствую, что для этого лучше иметь полное VBA-решение, но я не знаю, как это сделать. Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...