|
▼pico さん:
>
>kanabun様、いつも見させていただいています。
>今回のご回答も
>興味を持ってみさせていただいています。
>
>フィルターさんの最初の質問ですが
>小生も、小生なりに動作させて見ましたが、
>ご回答の内容で動作させますと、エラーが出ました。
>ここで質問ですが・・・
>>--------------------------------------------------
>質問1
>コードについて
>Set CopyTo = Worksheets("WAREA")では、エラーが出るので
>Set CopyTo = Worksheets("WAREA").Range("A1")にすると
>抽出した行がWorksheets("WARA")の2行目に貼り付けられます。
>これで間違いないでしょうか?
すでに かみちゃんさんがフォローがありますとおり、
> Dim CopyTo As Range
変数 CopyTo は 抽出転記先の先頭セルのことです。
そこは おっしゃるように、
>Set CopyTo = Worksheets("WAREA").Range("A1")にする
のが正解です。コード編集時のうっかりミスでした。
>>--------------------------------------------------
>質問2
>CopyTo.Parent.UsedRange.ClearContents
>「Parent」が指定されたオブジェクトの親オブジェクトを返す
>ことだと判断していますが、このコードはどのような
>役割をしているのでしょうか?
ここも、おっしゃる通りです。
役割というか、Parentプロパティを使うメリットは、
>Set CopyTo = Worksheets("WAREA").Range("A1")
とした時点で、セルCopyTo のシートは「WAREA」シートである、
という情報が備わっているので、
CopyTo.Parent と書いておけば、シート名("WAREA")が変わったとき
最初の
>Set CopyTo = Worksheets("WAREA").Range("A1")
を変更するだけで、何か所もシート名を書き換える必要がなくなる
ということです。
補足ですが、あるセルの親であるワークシートへの参照は
セル範囲.Parent とも、
セル範囲.Worksheet とも書けます。
なお、本スレッドそのものは、
【59463】アドバンスフィルターの使い方について
のほうで、その後展開されています。
|
|