- 締切済み
AdvancedFilterの使い方
Excel VBAでAdvancedFilterを使ってプログラムを作っています。 データの抽出法は分かったのですが、 検索条件に合致しなかったデータも別途抽出したいと考えています。 AdvancedFilterだけでは出来そうに無いのですが、 IF文などを使用するのでしょうか? 回答の程、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
別のCriteriaRange に基の条件のNOTに当たる条件を作るよりほか無いのでは。 Sub AdvancedFilter_1() Dim Drange As Range, Crange As Range Worksheets("Sheet1").Select ' 検索条件式の入力 Range("H1").Value = Range("A1").Value Range("H2").Value = "<>a" ' フィルタの実行 With Worksheets("Sheet1") Set Drange = .Range("A1").CurrentRegion Set Crange = .Range("H1").CurrentRegion End With Range("A1").Select Drange.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Crange, Unique:=False Set Drange = Nothing Set Crange = Nothing End Sub のRange("H2").Value = "<>a" のように。 "a" に対し "<>a" ">2" に対し "<=2" のように。個々にはどう表現したらよいか難しいケースもあると思うが。
お礼
回答ありがとうございます。 やはり、NOTにあたる条件を入れるしかないんですね。 実は、条件が600ほどあり、全てのNOT条件を入れてもうまくいかないんです。 例えば、 Range("H2").Value = "<>a" Range("H3").Value = "<>b" Range("H4").Value = "<>c" のように並べても、全てのデータが検索されてしまいます。 念のため、 Range("H2").Value = "<>a" Range("I2").Value = "<>b" Range("J2").Value = "<>c" も試しましたが、だめでした。 何かよい知恵がありましたら、教えて下さい。