我使用以下代码设置了一个 ActiveX 文本框来过滤 1,400 奇数行自动过滤数据;
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 秒。
有没有办法阻止它做任何事情,直到用户按下回车键(最好!)或焦点从文本框移开?
如果上面的代码显示不正确,我深表歉意!这里看起来不错,但预览看起来有点古怪!
谢谢,马特