VBA。通过函数传递的Excel筛选条件值
我正在使用VBA编写的自定义子程序执行筛选(和复制)选项。子例程获取要筛选的类别,作为参数“catName”。 我尝试将其设置为标准,使用多种组合,但筛选没有发生 试试1 试试2 试试3 所有这些都失败了 然而,如果我只是在代码中硬编码一个类别名称,它工作得很好VBA。通过函数传递的Excel筛选条件值,vba,excel,Vba,Excel,我正在使用VBA编写的自定义子程序执行筛选(和复制)选项。子例程获取要筛选的类别,作为参数“catName”。 我尝试将其设置为标准,使用多种组合,但筛选没有发生 试试1 试试2 试试3 所有这些都失败了 然而,如果我只是在代码中硬编码一个类别名称,它工作得很好 copyRange.AutoFilter 9, Criteria1:="B" 如何使用传递到函数中的值作为条件?提前感谢。您需要通过有点像公式的标准。试试这个: copyRange.AutoFilter 9, Criteria1:="
copyRange.AutoFilter 9, Criteria1:="B"
如何使用传递到函数中的值作为条件?提前感谢。您需要通过有点像公式的标准。试试这个:
copyRange.AutoFilter 9, Criteria1:="=" & catName
等式标记在这里很重要 您需要通过有点像公式的标准。试试这个:
copyRange.AutoFilter 9, Criteria1:="=" & catName
等式标记在这里很重要 试试这个:
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
试试这个:
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
为什么它很重要?没有
=
,我可以很好地管理。这很有效。为了确保没有任何尾随空格的前导,我只将其放入:-Criteria1:=“=”&Trim(catName)
为什么它很重要?没有=
,我可以很好地管理。这很有效。为了确保没有任何尾随空格的前导,我只将其放入:-Criteria1:=“=”&Trim(catName)