Автофильтр по изменению поля TextBox
Добавлено: 04 мар 2008, 08:06
На листе данные и контрол - поле TextBox1.
Нужно, чтоб при каждом изменении в TextBox1 автоматически сразу отфильтровывались данные, которые содержатся в TextBox1.
В коде листа указываю
При изменении значения TextBox1 вылетает ошибка 1004 'Метод AutoFilter из класса Range завершён неверно'.
Хотя если фокус (курсор) находится не в поле TextBox1, а на листе, то при принудительном запуске макрос срабатывает нормально.
Если соорудить рабочий код наподобие типа то работает, но о-о-о-чень долго.
Подозреваю, что уже есть варианты у тех, кто решал подобную задачу. Научите.
Нужно, чтоб при каждом изменении в TextBox1 автоматически сразу отфильтровывались данные, которые содержатся в TextBox1.
В коде листа указываю
Код: Выделить всё
Private Sub TextBox1_Change()
Range("MyRangeName").AutoFilter Field:=1, Criteria1:="=*" & TextBox1 & "*", Operator:=xlAnd
End Sub
Хотя если фокус (курсор) находится не в поле TextBox1, а на листе, то при принудительном запуске макрос срабатывает нормально.
Если соорудить рабочий код наподобие типа
Код: Выделить всё
Private Sub TextBox1_Change()
For Each C In Range("MyRangeName")
If InStr(1, C, TextBox1.Text) > 0 Then
C.EntireRow.Hidden = False
Else
C.EntireRow.Hidden = True
End If
Next
End Sub
Подозреваю, что уже есть варианты у тех, кто решал подобную задачу. Научите.