繁体   English   中英

用户选择运行时错误1004上的Excel VBA AutoFilter

[英]Excel VBA AutoFilter on user selection run-time error 1004

我有一个包含2张(“内容”和“文件夹”)的Excel 2010工作簿。

此工作簿的目的是按供应商或参考编号跟踪不同的工作,前端(内容页面)易于使用,仅包含按钮和搜索框(实际上并不是单独的)框,但只是用户输入的内容表(以下称为J8)的单元格J8的内容。

按钮将按供应商类型进行过滤(并且工作完全正常),但这是我遇到问题的用户选择。

我的宏代码是:

    Sub Find_Click()
    Dim userSelect As String
    userSelect = "*" & Range("J8") & "*"
    Sheets("Folders").Select
    ActiveSheet.Range("$B$1:$B$5000").AutoFilter Field:=2, Criteria:=userSelect, Operator:=x1And
    End Sub

按下“查找”按钮时,应该读取J8,然后选择“文件夹”表并过滤结果以显示包含J8中文本的B列中的每个条目。

这工作正常。 但是,现在当我尝试使用此宏时,我得到了一个1004运行时错误,其中包含“应用程序定义或对象定义的错误”消息。

有人可以帮忙吗?

编辑:

包含按照以下格式分配的宏的“包含”按钮:

Sub Button1_Click()
Sheets("Folders").Select
ActiveSheet.Range("$A$1:$A$5000").AutoFilter Field:=1, Criteria1:= _
    "Criteria"
    Set r = Range(Range("A3"), Range("A3").End(xlDown))
j = WorksheetFunction.CountA(r.Cells.SpecialCells(xlCellTypeVisible))
'MsgBox j
If j = 0 Then
    MsgBox "There is currently no work relating to Criteria"
    ActiveSheet.AutoFilterMode = False
    ActiveSheet.Range("A3").Select
    Sheets("Contents").Select
End If
End Sub

还有一个resest按钮,用于清除过滤器并返回到“内容”表:

Sub Reset_Click()
ActiveSheet.ShowAllData
Sheets("Contents").Select
End Sub

通常,您需要激活要使用AutoFilter的范围内的单元格。

此外,当您尝试将AutoFilter与通配符( *? )或数学测试一起使用时,您需要在条件字符串的开头添加= ,所以

userSelect = "=*" & Range("J8") & "*"

然后,它不是Criteria ,而是Criteria1Criteria2如果你使用第二个! 所以在这种情况下你不需要Operator

最后使用ActiveSheet.Range("$B$1:$B$5000").AutoFilter Field:=2 ,您要求代码过滤只有一列的范围的第二列!

因此,如果要对col B进行过滤,只需将Field:=2更改为Field:=1


这是工作代码:

Sub Find_Click()
Dim userSelect As String
Dim wS as Worksheet
userSelect = "=*" & Range("J8") & "*"
Set wS = Sheets("Folders")
wS.Activate
wS.Range("B1").Activate
If Not wS.AutoFilterMode Then wS.AutoFilterMode = True
wS.Range("$B$1:$B$5000").AutoFilter Field:=1, Criteria1:=userSelect
End Sub

而你在xlAnd也有一个拼写错误,它是x1And ;)

对于任何有兴趣的人来说,问题最终都存在于问题中:

ActiveSheet.Range("$B$1:$B$5000").AutoFilter Field:=2, Criteria1:=userSelect

由于代码只过滤了B列,因此Field值需要设置为“1”而不是原来的“2”

感谢@ R3uK的宝贵帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM