按整数搜索列不会检索任何值

时间:2016-06-04 12:34:39

标签: excel vba format cells

我已经制作了3个这样的搜索框,可以在搜索时检索值。只有当我使用文本时才会检索到值。每当我使用数字时,该列都不会检索任何值。最好的方法是文本框可以用文本和整数搜索。

我认为它必须与格式有关,我已经通过&#34更改了列的格式;选择列,右键单击列,选择格式单元格,更改为文本"。但这不起作用..

这是我在按号码搜索之前的样子。 enter image description here

这是我输入数字时的样子。 enter image description here

以下是我一直在使用的VBA代码,如上所述,当我按文字而不是数字搜索时,它可以正常工作。

Private Sub TextBox3_Change()
        Sheet1.Range("A2:CM" & Rows.Count).AutoFilter Field:=3, Criteria1:="*" & TextBox3.Value & "*"
End Sub

2 个答案:

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