こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAのフィルター機能について

こんにちわ!
エクセルのVBAを使って複数の条件を入力すると結果シートへ吐き出すプログラムを組み込んでいますが、下から五行目のCriteriaRange:=Sheets("検索").Range("A1:R2"), _の.Range("A1:R2")を変更した際に.Range("A1:R3")にすれば条件を指定できるのですがその状態で条件を一つだけ入力し抽出すると抽出できずすべてのデーターが吐き出されてしまいます。
ただし二行抽出データーを埋めるとそのとおりに抽出され結果シートへ吐き出されます。
抽出する条件を入力する際、一つの時もあれば二つの時もあります。そういった事を回避するにはどうすればいいでしょうか?
Sub OutputRec()

Application.ScreenUpdating = False
Sheets("結果").Activate
Cells.Clear


Sheets("検索").Range("A1").Value = Sheets("DATA").Range("A1").Value
Sheets("検索").Range("B1").Value = Sheets("DATA").Range("B1").Value
Sheets("検索").Range("C1").Value = Sheets("DATA").Range("C1").Value
Sheets("検索").Range("D1").Value = Sheets("DATA").Range("D1").Value
Sheets("検索").Range("E1").Value = Sheets("DATA").Range("E1").Value
Sheets("検索").Range("F1").Value = Sheets("DATA").Range("F1").Value
Sheets("検索").Range("G1").Value = Sheets("DATA").Range("G1").Value
Sheets("検索").Range("H1").Value = Sheets("DATA").Range("H1").Value
Sheets("検索").Range("I1").Value = Sheets("DATA").Range("I1").Value
Sheets("検索").Range("J1").Value = Sheets("DATA").Range("J1").Value
Sheets("検索").Range("K1").Value = Sheets("DATA").Range("K1").Value
Sheets("検索").Range("L1").Value = Sheets("DATA").Range("L1").Value
Sheets("検索").Range("M1").Value = Sheets("DATA").Range("M1").Value
Sheets("検索").Range("N1").Value = Sheets("DATA").Range("N1").Value
Sheets("検索").Range("O1").Value = Sheets("DATA").Range("O1").Value
Sheets("検索").Range("P1").Value = Sheets("DATA").Range("P1").Value
Sheets("検索").Range("Q1").Value = Sheets("DATA").Range("Q1").Value
Sheets("検索").Range("R1").Value = Sheets("DATA").Range("R1").Value

Sheets("DATA").Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("検索").Range("A1:R2"), _
CopyToRange:=Sheets("結果").Range("A1"), _
Unique:=False


Sheets("結果").Columns("A:R").AutoFit
Application.ScreenUpdating = True

End Sub

投稿日時 - 2008-06-17 14:43:54

QNo.4107660

困ってます

質問者が選んだベストアンサー

一番簡単で姑息な解決手段。

A1:R3にしておいて、条件がひとつだけの列は、同じ条件をコピーしておく。

抽出条件
条件1
ブランク

こうなっている場合、条件1またはブランクになって全件抽出になりますが

抽出条件
条件1
条件1

こうすれば、条件1または条件1になって、条件1しか出てきません。

投稿日時 - 2008-06-17 15:14:45

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問