我正在使用使用VBA编写的自定义子例程进行过滤(和复制)选项。子例程获取要过滤的类别,作为参数'catName'。 我尝试使用多种组合将其设置为条件,但过滤没有发生。
尝试1
copyRange.AutoFilter 9, Criteria1:=catName
尝试2
Dim crit As String
crit = "=" & chr(34)&catName&chr(34)
尝试3
crit = "'" & catName& "'"
以上所有都失败了。
如果我只是在代码中对类别名称进行硬编码就可以正常工作。
copyRange.AutoFilter 9, Criteria1:="B"
如何使用传递给函数的值作为标准?提前谢谢。
答案 0 :(得分:0)
你需要传递标准有点像公式。试试这个:
copyRange.AutoFilter 9, Criteria1:="=" & catName
方程式标记在这里很重要!
答案 1 :(得分:0)
试试这个:
Dim catName As String
catName = "B"
copyRange.AutoFilter 9, Criteria1:=catName
您没有正确引用某个地方,或者您没有正确定义catName
。例如,检查它是如何完成的,用“3”过滤第1列:
使用此代码时:
Public Sub TestMe()
Dim copyRange As Range
Dim strFilter As String
Set copyRange = Range("A1:P10")
strFilter = "3"
copyRange.AutoFilter 1, Criteria1:=strFilter
End Sub