【发布时间】:2016-10-11 18:36:32
【问题描述】:
我有一个 Excel 2010 工作簿,其中包含 2 张工作表(“内容”和“文件夹”)。
本工作簿的目的是按供应商或参考编号跟踪不同的工作,前端(内容页面)易于使用,仅包含按钮和搜索框(不是实际上是一个单独的框,只是用户键入的内容表的单元格 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,然后选择文件夹表并过滤结果以显示 B 列中包含 J8 中文本的每个条目。
这工作正常。但是,现在当我尝试使用此宏时,我收到 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
还有一个重置按钮,可以清除过滤器并返回到目录表:
Sub Reset_Click()
ActiveSheet.ShowAllData
Sheets("Contents").Select
End Sub
【问题讨论】: