2017-07-31 189 views
0

範囲から複数の条件を除外する必要があります。以下のコードはエラーではありませんが、すべての値を除外しません(たとえば、「ZL1」はまだ範囲内にあります)。私はオペレータ:= xlAndを試みましたが、結果は変わりません。演算子と:= xlFilterValues私は、「ファイル名を指定して実行時エラー 『1004』を得る:Rangeクラスのオートフィルタメソッドが失敗したVBAオートフィルタで複数​​の条件を除外

Sub Macro1() 
    Sheets("Z").Select 
    myarr = Array("<>ZC1", "<>ZL1", "<>ZF1") 
    lr = Range("A" & Rows.Count).End(xlUp).Row 
    ActiveSheet.Range("$A$1:$M$" & lr).AutoFilter Field:=3, Operator:=xlOr, Criteria1:=(myarr) 
End Sub 
+0

はあなたのサンプル・データのスナップショットを含むことができ、フィルタリングされたデータをどのように見せたいのですか? – takanuva15

+0

私が望むのは、列Cの値が "ZC1"、 "ZL1"または "ZF1"の行を除外する範囲です。 –

+0

@JamesSteeleこれはVBAを使用できない場合の1つです。回避策を使用する必要があります。ヘルパー列を作成します。これらの値のいずれかが3列目に存在する場合、ヘルパー列には0が表示されます。ヘルパー列にオートフィルタを作成し、値1をフィルタリングします。https:// stackoverflow .com/questions/28575754/filter-out-multiple-criteria-using-excel-vba – Ibo

答えて

1

をイボは、あなたが3かを除外するために、直接そのようにオートフィルタを使用することはできません、上記のコメントで述べたように。複数の値This particular postが自分の状況に関連するここでそれを行うには例の方法があります:。。。セルO2で

  • =ISNA(MATCH(C2, $P$2:$P$4,0))を入れ
  • P2ではP4を通じて、あなたのフィルタ値を入れZC1、ZL1、およびZF1で別個の細胞。

そして、このマクロを実行します。

Sub Macro2() 
    lr = Range("A" & Rows.Count).End(xlUp).Row 
    Range("$A$1:$M$" & lr).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("O1:O2"), Unique:=False 
End Sub 

マクロを実行する前に:AdvancedFilterマクロの後

Table showing setup

を:

Table after advanced filter

関連する問題