Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2007)
複数条件のフィルタ
投稿日時: 18/11/08 14:53:27
投稿者: FILETUBE

こんにちは。
1つ教えて下さい。
 
 
S列の値が"未"か10以上、又はM列が10以上の
値だけに絞って表示するように
 
   With Range("A2")
        .AutoFilter Field:=19, _
        Criteria1:="未", _
        Criteria2:=">9", _
        Operator:=xlOr
         
        .AutoFilter Field:=13, _
        Criteria1:=">9"
         
    End With
 
とコーディングしましたが
うまくフィルターがかかりません。
 
 
このコードではだめでしょうか?
分かる方おられましたら、よろしくお願いします。

回答
投稿日時: 18/11/08 17:01:35
投稿者: sk

引用:
With Range("A2")
    .AutoFilter Field:=19, _
    Criteria1:="未", _
    Criteria2:=">9", _
    Operator:=xlOr
       
    .AutoFilter Field:=13, _
    Criteria1:=">9"
       
End With

それだと A2 セルのアクティブセル領域
オートフィルターの適用範囲となります。
 
引用:
S列の値が"未"か10以上、又はM列が10以上

例えば L 列が空白列ならば、M 列以降の列は
A2 セルのアクティブセル領域には含まれません。
(3 行目以降に空白行があっても同様)
 
(修正例)
---------------------------------------------------------
 
With Range("A2:S10000")
 
---------------------------------------------------------

投稿日時: 18/11/08 18:56:22
投稿者: FILETUBE

回答ありがとうございます。
With Range("A2:T10000")と修正しましたが
フィルタが列の値が"未"か10以上、又はM列が10以上
ですが列の値が"未"か10以上、かつM列が10以上の
AND条件になってしまいます。
 
OR条件にしたいのですが、どのような訂正になりますか?
どうぞよろしくお願いします。
 

回答
投稿日時: 18/11/08 20:11:22
投稿者: simple

フィルタオプションを使ってみては?
https://allabout.co.jp/gm/gc/297791/1/
https://allabout.co.jp/gm/gc/297791/2/
https://allabout.co.jp/gm/gc/297791/3/
 
上の3ページ目に「Or条件の記述方法」という説明があります。
 
手作業でまずやってみて、それをマクロ記録してください。

投稿日時: 18/11/08 21:54:54
投稿者: FILETUBE

Simpleさん回答ありがとうございます。
ネット上で色々探していたのですが
なかなか無くて。
参考サイト紹介して頂きありがとうございました。

投稿日時: 18/11/09 10:09:55
投稿者: FILETUBE

おかげさまで教えて頂いたフィルタオプションで
複数条件での抽出は出来ました。
ここで1つお聞きしたいのですが、抽出範囲を必ず指定して
別の場所での結果表示になってしまうのでしょうか?
 
普通のフィルタはそのままでの表示位置になりますが
これは無理なのでしょうか?
 
分かる方おられましたら、よろしくお願いします。

回答
投稿日時: 18/11/09 14:29:11
投稿者: WinArrow
投稿者のウェブサイトに移動

↓作業列を使用する方法が紹介されてます
https://global-wing.com/activity/autofilter_or.html

投稿日時: 18/11/09 17:32:14
投稿者: FILETUBE

WinArrowさん、回答ありがとうございます。
 
紹介して頂いた内容検証してみます。

投稿日時: 18/11/09 19:42:53
投稿者: FILETUBE

こんばんは。
皆さん、色々と回答ありがとうございます。
 
データが下記のようにあった場合
 
残数 納品数 場所
1 10 未
2 2   未 
10 3 5
 
 
残数が10以上または、場所が未でかつ納品数が10以上
といったフィルタオプションの設定ができるでしょうか?
 
大変申し訳ありません
どうぞよろしくお願いします。

回答
投稿日時: 18/11/09 20:41:25
投稿者: simple

>残数が10以上または、場所が未でかつ納品数が10以上
 

残数    納品数  場所
>=10            
        >=10    未
とします。同一行はAND条件、各行はOr条件です。
 
 
> ここで1つお聞きしたいのですが、抽出範囲を必ず指定して
> 別の場所での結果表示になってしまうのでしょうか?

との質問についてですが、そのままでの表示位置に表示できますよ。
紹介したサイトの2ページ目にキチンと書いてあります。
 
また、
> 複数条件での抽出は出来ました。
とのことですが、本当に自分の手を動かしていますか?
「抽出先」を指定するとき、選択肢が2つなかったですか?

投稿日時: 18/11/09 23:38:03
投稿者: FILETUBE

回答ありがとうございます。
抽出先の選択では、
選択範囲内か指定した範囲の2つですね。
 
ここで 残数が10以上または場所が未かつ納品数が10以上の
フィルター条件が設定できるのでしょか?
何度も申し訳ありません。
 
よろしくお願いします。

投稿日時: 18/11/10 04:12:53
投稿者: FILETUBE

skさん、WinArrowさん、simpleさん
何度も、何度も回答ありがとうございました。
 
おかげさまで何とか、解決いたしました。
Excel(VBA)はとても奥深いと痛感しました。
 
またよろしくお願いします。