Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动筛选介于换行符之间的值(Excel/VBA)_Vba_Excel_Newline - Fatal编程技术网

自动筛选介于换行符之间的值(Excel/VBA)

自动筛选介于换行符之间的值(Excel/VBA),vba,excel,newline,Vba,Excel,Newline,我已经写了一个VBA代码,我必须过滤一组数据。但是我的一些数据中有一个换行符,我想过滤这些值。我尝试使用vbCrLf,但没有成功 这是我的密码: ActiveSheet.Range("$A$1:$M$10").AutoFilter Field:=2, Criteria1:="=1234 -" & vbCrLf & "product" 这里我过滤第二列中的值1234-product(在“-”和“product”之间有一个换行符)。但是上面的代码没有过滤任何东西 我在这里做错了什么

我已经写了一个VBA代码,我必须过滤一组数据。但是我的一些数据中有一个换行符,我想过滤这些值。我尝试使用
vbCrLf
,但没有成功

这是我的密码:

ActiveSheet.Range("$A$1:$M$10").AutoFilter Field:=2, Criteria1:="=1234 -" & vbCrLf & "product"
这里我过滤第二列中的值1234-product(在“-”和“product”之间有一个换行符)。但是上面的代码没有过滤任何东西


我在这里做错了什么?

您可以将以下字符串用于
标准1

"=1234 -?product"
"=1234 -*product"
"=1234 -" & vbLf & "product"
选项1和2使用通配符-如果您使用
*
,甚至可以将
产品
从末尾删除。选项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

我不知道怎么办,但您是否尝试过使用:
vbNewLine
Char(10)
Chat(13)
而不是
vbCrLf
。这些是换行的替代方法。我尝试了vbCrLf、char(10)和vbNewLine,但没有用