我已经制作了3个这样的搜索框,可以在搜索时检索值。只有当我使用文本时才会检索到值。每当我使用数字时,该列都不会检索任何值。最好的方法是文本框可以用文本和整数搜索。
我认为它必须与格式有关,我已经通过&#34更改了列的格式;选择列,右键单击列,选择格式单元格,更改为文本"。但这不起作用..
以下是我一直在使用的VBA代码,如上所述,当我按文字而不是数字搜索时,它可以正常工作。
Private Sub TextBox3_Change()
Sheet1.Range("A2:CM" & Rows.Count).AutoFilter Field:=3, Criteria1:="*" & TextBox3.Value & "*"
End Sub
答案 0 :(得分:0)
您的条件是文字过滤器;它不会检测数据中的数字,除非这些数字是以文本形式输入的。更改单元格的numberformat
不会更改作为数字输入到文本的值。他们需要重新输入文本。这可以通过编程方式完成;通过在单引号前面加上数字,或者在输入数值之前将列格式化为文本。
您还可以运行过滤器两次 - 首先使用文本过滤器,然后使用数字过滤器。
或者,正如@Ralph在下面的评论中所指出的,您还可以使用帮助列使用TEXT
函数将数值数据转换为文本,然后对该列进行过滤。
这样做的最佳方式可能取决于您的最终目标。
答案 1 :(得分:0)
如OP的屏幕截图中显示的那种“数字”类型,可能的解决方案如下:
Private Sub TextBox3_Change()
Dim criteria As String
With TextBox3
If IsNumeric(.Value) Then
criteria = .Value
Else
criteria = "*" & .Value & "*"
End If
End With
Sheet1.Range("A2:CM" & Rows.Count).AutoFilter Field:=3, Criteria1:=criteria
End Sub