2016-08-22 4 views
2

Я написал код VBA, где мне нужно отфильтровать набор данных. Но некоторые из моих данных имеют символ новой строки, и я хочу отфильтровать эти значения. Я пробовал использовать vbCrLf, но это не сработало.AutoFilter для значения, которое имеет символ новой строки между ними (Excel/VBA)

Вот мой код:

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

Здесь я фильтрации для значения 1234 -умножения (в период между «-» и «продукт» есть символ новой строки charater) во второй колонке. Но приведенный выше код ничего не фильтрует.

Что я здесь делаю неправильно?

+0

Я не знаю пути, но вы пытались использовать: 'vbNewLine',' Char (10) 'или' Chat (13) 'вместо' vbCrLf'. Это альтернативы для разрыва строки. –

+0

Я пробовал vbCrLf, char (10) & vbNewLine, но не использовал –

ответ

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 
+0

Спасибо, «= 1234 - * продукт» работал –