VBA 输入框不接受用户输入

VBA 输入框不接受用户输入

我有一个 VBA 代码用于接收用户的输入并设置输入的过滤条件,但是,当用户输入值并执行函数时,过滤条件将为空白。我的电话号码以 0 开头作为输入。但是当我手动设置带有数字的过滤条件时,函数就可以工作了。请问可以帮我一下吗?

以下是有效且给我带来问题的代码:

Sub sort()

A = InputBox("ENTER THE SUBJECT NUMBER")

    Range("A1:B1").Select
    ActiveSheet.Range("$A$2:$AD$6184").AutoFilter Field:=3, Criteria1:= _
        "A"
    Range("A2").Select
    

    Range(Selection, Selection.End(xlDown)).Select


    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("B1").Select

End Sub

运行此代码后,过滤的列为空白

Sub sort()

A = InputBox("ENTER THE SUBJECT NUMBER")

    Range("A1:B1").Select
    ActiveSheet.Range("$A$2:$AD$6184").AutoFilter Field:=3, Criteria1:= _
        "08122816403"
    Range("A2").Select
    

    Range(Selection, Selection.End(xlDown)).Select


    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("B1").Select
End Sub

虽然这个直接输入代码的方法很好用

答案1

您将用户输入存储在变量 A 中,但按字面“A”进行过滤,就像实际字符一样。只需删除引号即可。正确代码:

Sub sort()

    A = InputBox("ENTER THE SUBJECT NUMBER")

    Range("A1:B1").Select
    ActiveSheet.Range("$A$2:$AD$6184").AutoFilter Field:=3, Criteria1:=A
    Range("A2").Select
    

    Range(Selection, Selection.End(xlDown)).Select


    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Range("B1").Select

End Sub

致谢@JohnSUN 的评论

相关内容