AutoFilter中的一个具有换行符的值(Excel / VBA)
我写了一个VBA代码,我必须过滤一组数据。 但是,我的一些数据有一个换行符,我想过滤这些值。 我尝试使用vbCrLf
,但没有奏效。
这是我的代码:
ActiveSheet.Range("$A$1:$M$10").AutoFilter Field:=2, Criteria1:="=1234 -" & vbCrLf & "product"
在这里,我将在第二列中筛选价值1234-产品(在“ – ”和“产品”之间有一个换行符)。 但是上面的代码不会过滤任何东西。
我在这里做错了什么?
您可以将以下string用于Criteria1
:
"=1234 -?product" "=1234 -*product" "=1234 -" & vbLf & "product"
选项1和2使用通配符 – 如果使用*
甚至可以放弃product
。 选项3是您没有尝试按照评论的唯一选项;)
所有给我预期的输出:
之前:
后:
示例代码:
Option Explicit Sub Test() Dim ws As Worksheet Dim rng As Range Dim strCriteria As String Set ws = ThisWorkbook.Sheets("Sheet1") Set rng = ws.Range("A1:A4") 'unset filter ws.AutoFilterMode = False 'set filter - test 1 with wildcard strCriteria = "=1234 -?product" rng.AutoFilter Field:=1, Criteria1:=strCriteria 'unset filter ws.AutoFilterMode = False 'set filter - test 2 with wildcard strCriteria = "=1234 -*product" rng.AutoFilter Field:=1, Criteria1:=strCriteria 'unset filter ws.AutoFilterMode = False 'set filter - test 3 with vbLf strCriteria = "=1234 -" & vbLf & "product" rng.AutoFilter Field:=1, Criteria1:=strCriteria End Sub