|
▼hiro さん:
横から失礼します
>Sub 日付抽出1()
>Worksheets("作業明細").Range("A3").CurrentRegion.Columns(3). _
>AdvancedFilter action:=xlFilterCopy, _
>criteriarange:=Empty, _
>copytorange:=Worksheets("日付集計1").Range("A3"), _
>Unique:=True
>End Sub
>日付集計1シートは空の状態で実行しています。実行するとエラーにはなりませんが、日付集計1シートには何も表示されません。
検索条件がなければ
>criteriarange:=Empty, _
の行は無くてもよいと思いますが、
あっても、検索範囲が正しければちゃんと抽出されるんですね。
いちど、フィルタをかける前に
MsgBox Worksheets("作業明細").Range("A3").CurrentRegion.Columns(3). _
Address
のデバッグ行をマクロの最初に挿入して、
3行目が先頭行になっているか、とかを、確認されてみてはいかがでしょうか?
たとえば、[A1:A2]が結合されていたり、[A2]セルが空白でなく スペースが
入っていたりすると、
> .Range("A3").CurrentRegion
は、シートの1行目からの表範囲になってしまうので、
> 実行するとエラーにはなりませんが、
> 日付集計1シートには何も表示されません。
状態になります。こちらでも確認できました。
もし CurrentRegion.Columns(3) で範囲を正しく特定できないときは、
With Worksheets("作業明細")
.Range("C3", .Cells(.Rows.Count,3).End(xlUp)).AdvancedFilter ...
のように、C列の見出しセルからデータ最終セルまでとかで、範囲を特定
するようにします。
|
|