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