ULALA'Sブログ

ULALA'Sブログ

2020年09月06日
XML
カテゴリ: VBA
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 今回は絞り込んだデータをコピペする
方法を記載する。



①Range.AutoFilter
CurrentRegion



長い名前のボタンで恐縮だが、、
ボタン名の通り
バナナorメロンで絞り込みした後、
B79セル以下に
絞り込みしたデータを張り付ける。

良くやってしまいがちなNGパターンを先に見てみる。



ソース(NG例)

Sub setAutoFilterAndRangeCopy ()

' オートフィルタクリア
Range ("B66"). AutoFilter

' バナナ or メロンで絞り込み
Range ("B66"). AutoFilter 2, "バナナ", xlOr, "メロン"

範囲コピー
    ' Range ("B66"). ​CurrentRegion​ .Copy Range("B79")

End Sub

結果(NG例)



抽出対象のデータのタイトル部を元に、
CurrentRegionを利用することで

見えている範囲(=アクティブセルの範囲)を
指定することができる

見てわかる通り、
79行目にタイトル部が入ってしまって
いる ため
データ部だけを範囲としてコピーする必要が
ある
のでプログラムを修正する。
※データ部を開始行とすると、上記の場合、B67セルが
リンゴの為、絞り込みの非表示部に入ってしまうので、
場合によっては正常な範囲データが取得できなくなる
可能性があるので、タイトル行を範囲取得の開始行としている。

ソース(OK例)

Sub setAutoFilterAndRangeCopy ()

 ' オートフィルタクリア
Range ("B66"). AutoFilter

' バナナ or メロンで絞り込み
Range ("B66"). AutoFilter 2, "バナナ", xlOr, "メロン"

 ' 範囲コピー(NG)
    ' Range("B66").CurrentRegion.Copy Range("B79")


Range ("B66"). ​CurrentRegion.Offset(1, 0)​ .Copy Range("B79")

End Sub

結果(OK)



ソースより

Range ("B66"). CurrentRegion.Offset(1, 0)

のようにCurrentRegionにoffsetを利用することで
​タイトル行のひとつ下の見えている行​
範囲の開始行 としたため、データ部から
範囲コピーできるようになる。

次回は絞り込んだデータを元に
計算処理を行う方法を記載しようと思う。





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2020年09月06日 23時25分16秒
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

プロフィール

ULALA13

ULALA13

カレンダー


© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: