2016-08-22 10 views
2

データセットをフィルタリングする必要があるVBAコードを記述しました。しかし、私のデータの中には改行文字があり、それらの値をフィルタリングしたいと思っています。私はvbCrLfを使ってみましたが、うまくいきませんでした。改行文字を含む値のオートフィルタ(Excel/VBA)

はここに私のコードです:ここでは

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

iの値が1234 -productのフィルタリングをしています - 2列目の(「」の間にと「製品」は改行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をドロップすることができます。オプション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 - * product"ありがとう –

関連する問題