質問: マクロでオートフィルターの抽出が出来ない 下記のデーターをマクロで作成しましたが、2010/03/01は抽出するが、2010/03/02以降は デバッグが発生して上手くいきません。 どの様にすれば解決できるのか、ご教授お願いします。 現状) aファイルのa列のオートフィルタオプションで、抽出条件の指定にbファイルの c6をコピーして、「ctrl」+「v」で貼り付け抽出すると2010/03/01の24時間分の データーが抽出されます。2010/03/02を抽出するとデバッグが発生する。 データーの詳細) aファイルに「元データー sheet」があり、a6~a44647に、 1ヶ月分の日付が記載されてます。 (b6~b44647には、24時間を1分間隔でのデーターがあります) a列の日付は、2010/03/01~2010/03/31のデーターがあり、 「セルの書式設定」を確認すると、「標準」設定で表記されてます。 オートフィルタによりa列の、各1日分のデーターを抽出させます。 bファイルの「作成日指定 sheet」のb3に2010/3/1を入力すると c6には「=$b$3」で「2010/03/01」と表示する様に「セルの書式設定」 「ユーザー定義」で「yyyy/mm/dd」を選択してます。(c36まで設定) 以下c7に「=$b$3+1」で、c8には「=$b$3+2」で、c36までで「2010/03/31」 と表示させてます。
回答: 基本のマクロ: 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