プロが教える店舗&オフィスのセキュリティ対策術

ソース中の一部なので意味不明だったら恐縮ですが、

Set FilterRange = Range(CopyRange.Offset(0).Address(1, 1))
FilterRange.AutoFilter Field:=2, Criteria1:="<>", Operator:=xlFilterValues
FilterRange.Selection.Copy

コピーしたい範囲を見つけて、FilterRange に入れてます。
そしてその範囲で2列目のnullをオートフィルタで除外して、
その結果をコピーしたところです(つもりです)

これを、貼付.xlsx のAというシートのA1セルに値で貼り付けたいのですが、
何故かカーソル位置の1セルしか貼り付けられませんでした。
正しい方法を教えてください。

A 回答 (1件)

こんばんは、


CopyRangeにどのような範囲がset されているか解らないので、、何とも

ちなみに
Set FilterRange = Range(CopyRange.Offset(0).Address(1, 1)) は
Set FilterRange=CopyRange と同じ事になると思います。強いては
以降のFilterRangeをCopyRangeとしても成立するのでは無いかと、、、
デバッグしていませんが、
FilterRange.Selection.Copy
コンパイルはできるかも知れませんが、実行時エラーでは無いでしょうか?

CopyRangeの指定がSet CopyRange = ActiveSheet.Range("A1:D50")みたいに範囲を指定していれば、AutoFilterで絞られているとしても単セルが対象になる事は無いのでは無いかと思います。

想像で Range(CopyRange.Offset(0).Address(1, 1))そのままで

Dim CopyRange As Range
Set CopyRange = ActiveSheet.Range("A1", Cells(Rows.Count, 2).End(xlUp))
Dim FilterRange As Range
Set FilterRange = Range(CopyRange.Offset(0).Address(1, 1))
FilterRange.AutoFilter Field:=2, Criteria1:="<>", Operator:=xlFilterValues
FilterRange.Copy
    • good
    • 1
この回答へのお礼

ありがとうございます。
FilterRange.Copy でうまく行ったようです!

お礼日時:2021/11/10 11:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!