AutoFilter用于在其间具有换行符的值(Excel / VBA)

时间:2016-08-22 08:11:16

标签: excel vba excel-vba newline

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

这是我的代码:

ActiveSheet.Range("$A$1:$M$10").AutoFilter Field:=2, Criteria1:="=1234 -" & vbCrLf & "product"

这里我在第二列中过滤了值1234 -product(在' - '和'product'之间有一个换行符号)。但上面的代码没有过滤任何东西。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以为Criteria1使用以下字符串:

"=1234 -?product"
"=1234 -*product"
"=1234 -" & vbLf & "product"

选项1和2使用通配符 - 如果使用product,甚至可以将*删除。选项3是您没有根据评论尝试的唯一选项;)

所有人都给我预期的输出:

在:

enter image description here

后:

enter image description here

示例代码:

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