
いつもお世話になっております。
現在第一条件から第三条件までの入力フォームを作成し、その条件に基づいたオートフィルタを作成中なのですが、
第二条件以下に未入力の場合のオートフィルタができなくて困っています。
これら未入力(空白)でもきちんと抽出できるオートフィルタを作るにはどうしたら良いですか?
以下に私が作成したものを転記いたしますので、どなたかご教示くださいますよう、お願いいたします。
With Worksheets("業種別検索")
myCriteria1 = .Range("a2").Value
myCriteria2 = .Range("b2").Value
myCriteria3 = .Range("c2").Value
End With
With Worksheets("元データ")
If Worksheets("元データ").AutoFilterMode = False Then
Range("A6:z6").Select
Selection.AutoFilter
Else
Sheets("元データ").Select
Selection.AutoFilter
Range("A6:z6").Select
Selection.AutoFilter
End If
.Range("A1").CurrentRegion.AutoFilter 17, myCriteria1, xlAnd
.Range("A1").CurrentRegion.AutoFilter 18, myCriteria2, xlAnd
.Range("A1").CurrentRegion.AutoFilter 19, myCriteria3, xlAnd
End With
No.2ベストアンサー
- 回答日時:
こんにちは。
こんな考え方でいかがでしょうか?
空白値の場合は、オートフィルタの選択を無視するという方法です。考え方としては、ものすごく単純なんですが、「Criteriaありき」という方法ですと、どうしても、オートフィルタがうまく行かないようですね。
Range("A6:z6").Selectということは、6行目から、という意味だと思います。まだ、なんとか私は、おやりになっていることに付いていっていると思います。
なお、これで、今回のスタイルとしてのマクロは、第三段目になると思います。一応、そういうわけで、プロシージャ名に気を使いました。
'---------------------------------------
Sub オートフィルタ複合選択3()
Dim myCriteria1 As String
Dim myCriteria2 As String
Dim myCriteria3 As String
With Worksheets("業種別検索")
myCriteria1 = Trim(.Range("a2").Value)
myCriteria2 = Trim(.Range("b2").Value)
myCriteria3 = Trim(.Range("c2").Value)
End With
With Worksheets("元データ")
.Select
If .AutoFilterMode Then
'.ShowAllData 'すべて出す
.AutoFilterMode = False 'フィルタモード解除
End If
With .Range("A6", .Range("A65536").End(xlUp).Offset(, 25))
If myCriteria1 <> "" Then
.AutoFilter 17, myCriteria1, xlAnd
End If
If myCriteria2 <> "" Then
.AutoFilter 18, myCriteria2, xlAnd
End If
If myCriteria3 <> "" Then
.AutoFilter 19, myCriteria3, xlAnd
End If
End With
End With
End Sub
で、できました!やった~!
Wendy02さん、いつもありがとうございます!!
これで検索機能は完成です!
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでのフィルタについて(空白行の削除)
Excel(エクセル)
-
EXCELのオートフィルタで空白セルを無視したいのですが
Excel(エクセル)
-
表にフィルターをかけ、絞ったデータ(可視化セルのみ)を一次元配列として変数に入れるという動作を書きた
Visual Basic(VBA)
-
-
4
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
5
Excel VBAでオートフィルタで抽出した列データを別シートの最終行にコピーするには
Visual Basic(VBA)
-
6
vba フィルター 複数条件 3つ以上 完全一致除外
Visual Basic(VBA)
-
7
VBAのコードがエラーになってしまいます。(エクセル)
Excel(エクセル)
-
8
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
9
VBAのオートフィルターで該当行がない場合に処理を止めたい
Excel(エクセル)
-
10
マクロ オートフィルタの検索値を所定のセルから参照
Excel(エクセル)
-
11
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
12
エクセルのオートフィルタで抽出できない
Excel(エクセル)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
EXCELマクロでワイルドカードを使ったオートフィルタ処理の方法がわからない
Excel(エクセル)
-
16
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
17
Excel マクロ オートフィルで抽出後 削除したい
Access(アクセス)
-
18
Excelマクロ:オートフィルタ3つ以上の条件
Excel(エクセル)
-
19
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
20
excelで直前に参照していたブックに戻るマクロは作れますか?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
Excelで、ブック中すべてのシー...
-
Excelのオートフィルタで非表示...
-
エクセルのオートフィルタで最...
-
エクセルで時刻(8:00~20:00)...
-
Excel2003 オートフィルタで「...
-
Excel 日付・時刻データの抽出
-
Excelのフィルターで抽出した状...
-
エクセルの偶数行(奇数行)の抽出
-
エクセルで、条件に一致した行...
-
オートフィルタは金額の桁カン...
-
可視セルを対象としたcountifが...
-
Excelで文字を入力と自動的にフ...
-
なぜShowAllDataだとうまく行か...
-
オートフィルタで表示されるリ...
-
Excel時間データの抽出
-
(EXCEL)オートフィルタで折りた...
-
エクセルのマクロ(検索)
-
EXCELで2つの数値のうち大きい...
-
Excelで隣のセルと同じ内容に列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセル関数で、数字の入った...
-
エクセルの偶数行(奇数行)の抽出
-
可視セルを対象としたcountifが...
-
オートフィルタで選択したデー...
-
エクセルで、条件に一致した行...
-
オートフィルタで3つ以上の条...
-
【Excel/関数/条件付き書式】月...
-
access マクロでのフィルタの...
-
Excel共有ブックのオートフィル...
-
オートフィルタは金額の桁カン...
-
【EXCEL】条件に一致した最新デ...
-
【excel】リスト内の条件にあっ...
-
エクセルにて、フィルタをかけ...
-
関数で小数点以下を抽出したい
-
エクセル、オートフィルタで最...
-
オートフィルタで未入力(空白...
おすすめ情報