[[20150602132430]] 『オートフィルタで日付』(アイ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『オートフィルタで日付』(アイ)

こんにちは。

オートフィルタを使って、セルの値から日付を絞り込む方法を教えてください。

Sub Macro1()

    Windows("data.xlsx").Activate
    ActiveSheet.Range("$A$4:$BC$30000").AutoFilter Field:=9, Criteria1:="山田"
    ActiveSheet.Range("$A$4:$BC$30000").AutoFilter Field:=11, Criteria1:=Range("H2").Value _
        , Operator:=xlAnd

End Sub

現在、上記のコードを記述しています。I列目を"山田"で絞り込み、K列目をH2(日付の書かれたセル)で絞り込みをしたいと思っています。が、このコードを実行すると、K列目が空欄になっています。特にエラーは出ません。"H2"もK列目の日付も書式の設定は同じです。何故なのでしょうか。どなたか宜しくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


データが判らないので、ご自分でミスを探すしかないかと…。
条件を、片方ずつ試すとどうなりますか?
(???) 2015/06/02(火) 13:49

???さん

条件を片方ずつ試しても同じです。"山田"のほうは問題なく絞り込めています。
日付のほうは、data.xlsxのK列にある日付を一つコピーしてH2に張り付けて試してみたのですが、それでもやっぱり空白のセルで絞り込まれているようです。
(アイ) 2015/06/02(火) 13:53


では Range("H2").Value を表示してみると、空欄になっていたりしませんか?
data.xlsxの中にあるH2セルを見ているようですが。
(???) 2015/06/02(火) 13:57

???さん

本当ですね、そうかもしれません…。
抽出というブックにコードを記述しているのですが、抽出ブックのH2を検索値にするにはどのように書き換えれば良いのでしょうか。
(アイ) 2015/06/02(火) 13:59


 横から失礼いたします

 H2の書式を文字列にして、日付(2015/5/1など)を入力してみてください
(さいき) 2015/06/02(火) 14:13

 日付の AutoFilter は難しいですよ

 あるセルの値を条件にフィルタをかけるには

 > .AutoFilter Field:=11, Criteria1:=Range("H2").Value _
        , Operator:=xlAnd

 でなく、Criteria1以上、xlAnd, Criteria2以下、として 
 かつ、セルのValueではなく、Value2プロパティを 不等号で挟むようにしてフィルタかけてください。

  .AutoFilter Field:=11, ">=" & Range("H2").Value2 , xlAnd,  "<=" & Range("H2").Value2
 .
(kanabun) 2015/06/02(火) 14:18

さいきさん
やはり空白のセルで絞り込まれているようです。

kanabunさん
そのままコピペしてみたところ、">=" この部分で 名前付き引数 というコンパイルエラーが出てしまいました。
(アイ) 2015/06/02(火) 14:31


ブックのアクティブを切り替える前に、Range("H2").Value の内容を変数にコピーしておくとか。
(???) 2015/06/02(火) 14:46

???さん
ありがとうございます!望みどおりの結果を得ることができました!感謝です
(アイ) 2015/06/02(火) 14:55

 > kanabunさん 
 > そのままコピペしてみたところ、">=" この部分で 名前付き引数 という
 > コンパイルエラーが出てしまいました。

 失礼。Field:= は余分でしたね。 あるいは 引数名を省略せずに全部つけて、以下のようにしてください。

 .AutoFilter Field:=11, Criteria1:=">=" & Range("H2").Value2 , Operator:=xlAnd,  Criteria2:="<=" & Range("H2").Value2

 日付のAutoFilterをするときに、セルの書式は無関係です。
 うまく行かないのは、文字列で抽出しようとしたり、セルの値(2015/6/2 とかの日付け)でCriteria1 だけを指定して
 いるからです。シリアル値(セルのValue2値)を ">=" と "<="で挟んで抽出すれば、セルの書式がどのようなものであろうと
 日付データが入っていれば、抽出されます。
 .
(kanabun) 2015/06/02(火) 15:07

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.