• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロでオートフィルターの抽出が出来ない)

マクロでオートフィルターの抽出が出来ない

このQ&Aのポイント
  • 下記のデータをマクロで作成しましたが、2010/03/01は抽出するが、2010/03/02以降はデバッグが発生して上手くいきません。
  • AファイルのA列のオートフィルタオプションで、抽出条件の指定にBファイルのC6をコピーして、「Ctrl」+「V」で貼り付け抽出すると2010/03/01の24時間分のデータが抽出されますが、2010/03/02を抽出するとデバッグが発生します。
  • Aファイルには「元データー Sheet」として、A6~A44647に1ヶ月分の日付が記載されており、オートフィルタによりA列の各1日分のデータを抽出させたいです。Bファイルの「作成日指定 Sheet」のB3に日付を入力することで、C6からC36までの日付が表示されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

実データありきでマクロを作成したいご意向でしたら,実データの正しい姿について情報不足の回答者からあてずっぽのマクロを募集しても時間の無駄です。 あなたが書いて,少なくとも3月1日分は抽出に成功したそのマクロをありのまま全文一切編集せず関係なかろうと抜き出したり削除せず丸ごとコピーしてご相談に掲示し,問題になっているエラーを突破する方策についてアドバイスを求めてみてください。 一端このご相談は閉鎖し,改めて質問投稿し直す事を推奨します。

kimatatohi
質問者

お礼

ご指摘有難う御座います。 その後、確認したら3月1日のみが実行できたのは、マクロで設定していた事が 判明し、その後、色々検討しましたが、結果、出来ないままです。 質問の内容が漠然としていた事もありますので、質問内容をまとめ、再度、質問させて 頂きますので、見かけたら回答をお願いします。 有難う御座いました

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

基本のマクロ: sub macro1() workbooks("BookA.xls").worksheets("元データー").range("A5:A44647").autofilter _ field:=1, _ criteria1:=workbooks("BookB.xls").worksheets("作成日指定").range("B3").value end sub C6は使いません。 B3の書式は問いません ただし >A列の日付は、2010/03/01~2010/03/31のデーターがあり、 >「セルの書式設定」を確認すると、「標準」設定で表記されてます。 通常,これは間違った状態です。 日付のデータの入ったセルの書式設定を確認すると,「日付」の設定になっています。 もしも日付のセルの書式を確認して,やはり標準になっていたのが「事実」だった場合。 推奨はデータを日付に直します。A列を選び,データメニューの入力規則を開始してすぐOKするなどで。 データをどうしても直したくない場合は,仕方がないのでマクロの方で対応します。 修正: sub macro2() workbooks("BookA.xls").worksheets("元データー").range("A5:A44647").autofilter _ field:=1, _ criteria1:=format(workbooks("BookB.xls").worksheets("作成日指定").range("B3"), "yyyy/mm/dd") end sub

kimatatohi
質問者

お礼

回答有難う御座います。 >sub macro1() 実行しましたが、 オートフィルタオプションの抽出条件が 「3/1/2010」になっているので、行の6~44643行までが短縮 されてます。 >sub macro2() 実行しましたが、何も変わらない様です。 補足に追加情報を記載しますので、引き続き宜しくお願いします。

kimatatohi
質問者

補足

ご指摘の通り、2010/03/01~2010/03/31の年月日は「日付」の 設定でなくてはいけないのですが、このデーターは、温湿度を 記録している別のPCからコピーして貼り付けています。 (温湿度管理ソフトにより、エクセル形式に変換している) よって、「標準」での年月日になります。 >データをどうしても直したくない場合は,仕方がないのでマクロの方で対応します。 まさしく、その通りです。