我有以下代码,根据文本框中输入的内容进行过滤。这适用于字符串,但它不适用于整数搜索。知道我可能做错了吗?
Private Sub TextBox1_Change()
On Error Resume Next
metin = TextBox1.Value
Set bul = Range("a4:a10").Find(What:=metin)
Application.Goto Reference:=Range(bul.Address), Scroll:=False
Selection.AutoFilter field:=1, Criteria1:=TextBox1.Value & "*"
If metin = "" Then
Selection.AutoFilter
End If
End Sub
答案 0 :(得分:1)
在开头添加Range("a4:a10").NumberFormat = "@"
。对于数字,Excel会尝试比较值,而不是数字表示为字符串。因此,它尝试完全匹配:)使用该行,它将数字序列视为字符串,并将应用字符串比较。最终的代码是:
Private Sub TextBox1_Change()
Range("a4:a10").NumberFormat = "@"
On Error Resume Next
metin = TextBox1.Value
Set bul = Range("a4:a10").Find(What:=metin)
Application.Goto Reference:=Range(bul.Address), Scroll:=False
Selection.AutoFilter field:=1, Criteria1:=TextBox1.Value & "*"
If metin = "" Then
Selection.AutoFilter
End If
End Sub
为了优化,您应该在此方法之外的某处设置范围格式,因此您不必在每次更改文本框时都这样做。