Я настроил текстовое поле ActiveX для фильтрации 1400 нечетных строк данных с автофильтрацией, используя следующий код;
Private Sub TextBox3_Change()
Application.Calculation = xlManual
Application.ScreenUpdating = False
Selection.AutoFilter Field:=5, Criteria1:="*" & TextBox3.Value & "*", Operator:=xlOr
On Error Resume Next
If Range("B7:B1307").SpecialCells(xlCellTypeVisible).Count = 0 Then
Call ClearAllFilters
ActiveSheet.Range("B7:B1307").AutoFilter Field:=5, Criteria1:="<>"
Selection.AutoFilter Field:=6, Criteria1:="*" & TextBox3.Value & "*", Operator:=xlOr
End If
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
End Sub
Проблема в том, что при каждом нажатии клавиши он вычисляет - до 20 секунд на нажатие клавиши.
Есть ли способ запретить ему что-либо делать до тех пор, пока пользователь не нажмет Enter (предпочтительно!) или фокус не будет удален из текстового поля?
Приносим свои извинения, если приведенный выше код отображается неправильно! Здесь все выглядит нормально, но предварительный просмотр выглядит немного странно!
Спасибо, Мэтт