2016-08-22 2 views
2

데이터 집합을 필터링해야하는 VBA 코드를 작성했습니다. 하지만 내 데이터 중 일부는 그것에 개행 문자가 있고 그 값을 필터링하고 싶습니다. vbCrLf을 사용해 보았지만 작동하지 않았습니다.사이에 개행 문자가있는 값 (Excel/VBA)의 자동 필터

여기 내 코드이다 : 여기

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

제가 값 1,234 - 제품 필터링하고 - 상기 제 컬럼 ('사이 및'제품 '개행 charater있다). 그러나 위의 코드는 아무것도 필터링하지 않습니다.

내가 뭘 잘못하고 있니?

+0

나는 그 방법을 모르지만'vbCrLf' 대신'vbNewLine','Char (10)'또는'Chat (13)'을 사용해 보았습니다. 이것들은 줄 바꿈의 대안입니다. –

+0

나는 vbCrLf, char (10) & vbNewLine을 시도했지만 사용하지 않았다. –

답변

1

당신은 Criteria1에 대해 다음 문자열을 사용할 수 있습니다

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

옵션 1과 2를 사용 와일드 카드 - 당신이 *를 사용하는 경우에도 마지막을 지나고 product을 놓을 수 있습니다.

하기 전에 :

enter image description here

후 :

enter image description here 모든 나를 위해 예상되는 출력을 제공)

, 옵션 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 
+0

감사합니다. "= 1234 - * product" –