С помощью этого макроса VBA для Excel я получаю фильтр мгновенного поиска, когда я набираю все слово, но я хочу, чтобы он был следующим: когда я набираю O для opel, я получаю, что opel уже показывает.

Это код:

Sub MG26Nov26
Private Sub TextBox1_Change()
Dim Ray As Variant
If Len(TextBox1.Value) = 0 Then
    Sheet1.AutoFilterMode = False
    Else
        If Sheet1.AutoFilterMode = True Then
            Sheet1.AutoFilterMode = False
        End If
    Ray = Split(TextBox1, "+")
    Sheet1.Range("A2:F" & Rows.Count).AutoFilter field:=1, Criteria1:=Ray, Operator:=xlFilterValues  
    End If

End Sub

Это тестовый файл:

https://drive.google.com/open?id=1KDwE2jT_u35wPhd5dR7Xi3X31ddzXDNx

1 ответ1

0

Чтобы решить эту проблему, вы можете использовать приведенный ниже код VBA.

Private Sub TextBox1_Change()
Dim Ray As Variant
If Len(TextBox1.Value) = 0 Then
    Sheet1.AutoFilterMode = False
    Else
        If Sheet1.AutoFilterMode = True Then
            Sheet1.AutoFilterMode = False
        End If

    Sheet1.Range("A2:F" & Rows.Count).AutoFilter field:=1, Criteria1:="*" & TextBox1.Text & "*", Operator:=xlFilterValues
    End If

End Sub

NB. Это изменение, которое я внес в критерии кода VBA1:= "*" & TextBox1.Текст & "*" вместо переменной Ray .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .