|
kanabun さん、ありがとうございます。
>いちど、フィルタをかける前に
>MsgBox Worksheets("作業明細").Range("A3").CurrentRegion.Columns(3). _
> Address
>のデバッグ行をマクロの最初に挿入して、
>3行目が先頭行になっているか、とかを、確認されてみてはいかがでしょうか?
上のデバッグ行をマクロに挿入して、実行してみました。
なんと、$C$1:$C$18とMsgBOXに表示され驚きました。C3からではなくC1から選択されていました。
>たとえば、[A1:A2]が結合されていたり、[A2]セルが空白でなく スペースが
>入っていたりすると、
>> .Range("A3").CurrentRegion
>は、シートの1行目からの表範囲になってしまうので、
2行目の行番号を選択し、DELキーで2行目全体を消去し、再度マクロを実行しました。するとMsgBoxには$C$3:$C$18と表示され、日付集計1シートにはユニークな日付データが表示されていました。
このデバッグ行はたいへん素晴らしいですね。とても勉強になりました。
このデバッグ行は .Range("A3").CurrentRegionが選択した範囲が確認でき、実行できたり出来なかったり不安な気持ちで使ってきたマクロでしたが、自信をもって
マクロを使っていける気持ちになりました。
>状態になります。こちらでも確認できました。
>もし CurrentRegion.Columns(3) で範囲を正しく特定できないときは、
> With Worksheets("作業明細")
> .Range("C3", .Cells(.Rows.Count,3).End(xlUp)).AdvancedFilter ...
>のように、C列の見出しセルからデータ最終セルまでとかで、範囲を特定
>するようにします。
このステートメントも参考にさせていただきます。
数日間悩んでいた問題が解決しました。ありがとうございました。たいへん勉強になりました。
また、質問させていただく機会がありましたら、よろしくお願いいたします。
ありがとうございました。
|
|