VBA在您键入时过滤数据(数字)

时间:2016-04-06 09:41:21

标签: excel vba autofilter

如何修改此解决方案以使用数字?至于现在,它仅在过滤短语是文本时才有效。

http://chandoo.org/wp/2015/08/22/filter-as-you-type-excel/

1 个答案:

答案 0 :(得分:1)

按照链接所执行的步骤操作,然后使用以下代码将Range(" $ B $ 4:$ B $ 5000")部分替换为您要过滤的实际数据。这也假定您将文本框链接到单元格A1。

Private Sub TextBox1_Change()

ActiveSheet.Range("$B$4:$B$5000").AutoFilter Field:=1, Criteria1:="" & CStr(Excel.ActiveSheet.Range("A1").Value) & ""

End Sub

此外,您可能希望获得包含该数字中所有整数的所有值,并且可以使用以下内容(尽管速度相当慢)

Private Sub TextBox1_Change()
Application.ScreenUpdating = False
vCheck = CStr(Range("A1").Value)
For Each vCell In Range("B5:B5000")
vValue = CStr(vCell.Value)
If Not CBool(InStr(1, vValue, vCheck, vbBinaryCompare)) Then
hideRow = vCell.Row
Rows(hideRow).Hidden = True
Else
hideRow = vCell.Row
Rows(hideRow).Hidden = False
End If
Next vCell
Application.ScreenUpdating = True
End Sub