• 締切済み

マクロ 日付 オートフィルター

いつも回答して頂きとても感謝しています。 日付の範囲をオートフィルターで抽出しようとしましたが、抽出されませんでした。 マクロのステップでオートフィルター実行の所まで動かし、フィルターの状態を確認した所、日付が入力されている列で実行されていました。フィルターの中身を確認した所、日付が2013/8/16(月)等で表示されていました。(aaa)の箇所のみ削除して実行した所、抽出が上手くいきました。 試しに、セル書式のユーザー設定でyyyy/m/d (aaa)と入力し、見た目の表示を合わせましたが無駄に終わりました。何が原因で、何処の記述を変えればいけるのでしょうか?宜しくお願い致します。 変数の最初,最後,終了1,開始2は全て Date です。 最初 = Format(開始2, "yyyy/m/1") If 終了1 < Format(DateAdd("m", 1, 開始2), "yyyy/m/d") Then 最後 = 終了1 Else 最後 = DateAdd("d", -1, DateAdd("m", 1, 最初)) End If With ws1 MaxR = .Cells(Rows.Count, 2).End(xlUp).Row MaxC = .Cells(2, Columns.Count).End(xlToLeft).Column 日付c = .Rows(2).Find(what:="発生日時", LookIn:=xlValues, _ lookat:=xlWhole, searchorder:=xlByColumns, _ searchdirection:=xlNext).Column .Range(.Cells(2, 日付c), .Cells(MaxR, MaxC)).Sort _ Key1:=.Cells(2, 日付c), order1:=xlAscending, Header:=xlYes If .AutoFilterMode = True Then .AutoFilterMode = False End If .Cells(2, 日付c).AutoFilter field:=1, Criteria1:=">=" & 最初, Operator:=xlAnd, _ Criteria2:="<=" & 最後

みんなの回答

  • oka_me
  • ベストアンサー率86% (26/30)
回答No.1

当方環境2007ですが、質問者様のコードを試してみたところ、問題無く抽出出来ました。。 日付が入力されている列はデータ範囲の左端の列(今回の場合B列でしょうか)になっていますか? もしそうでなければ抽出されないかと思います。最後の行の「field:=1」の数値を変更する必要があります。。

kero1192kero
質問者

お礼

ネットで確認した所、たまたま同じような事で相談した内容のものがあったので、それを参考にして記述を直した所、抽出が出来る様になりました。日付をシリアル値に変更して抽出しているみたいです。考えてくださりありがとうございました。 変更点) Criteria1:=">=" & 最初 ⇒ Criteria1:=">=" & CLng(最初)