VBA过滤器(搜索整数值)

时间:2017-07-18 08:29:29

标签: excel vba excel-vba

我有以下代码,根据文本框中输入的内容进行过滤。这适用于字符串,但它不适用于整数搜索。知道我可能做错了吗?

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

1 个答案:

答案 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

为了优化,您应该在此方法之外的某处设置范围格式,因此您不必在每次更改文本框时都这样做。