※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAのフィルター機能について)
エクセルVBAのフィルター機能について
このQ&Aのポイント
エクセルVBAのフィルター機能について要約
エクセルVBAを使用して複数の条件を指定し結果シートにデータを出力するプログラムを作成しています。ただし、条件を変更する際に特定の行の範囲を変えると抽出ができなくなる問題があります。また、条件の入力が1つの場合と2つの場合で異なる結果が出力されることもあります。この問題を回避する方法を教えてください。
エクセルVBAを使用して複数の条件を指定し結果シートにデータを出力するプログラムを作成していますが、条件を変更する際に特定の行の範囲を変更すると抽出ができない問題が発生しています。また、条件の入力が1つの場合と2つの場合で異なる結果が出力されることもあります。この問題を解決するにはどうすればよいでしょうか?
こんにちわ!
エクセルの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