[[20190915094759]] 『VBAで範囲コピーをする際、1行のみだと全行が選択』(素人) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAで範囲コピーをする際、1行のみだと全行が選択されてしまう』(素人)

失礼いたします。

VBAで範囲コピーをして別シートに張り付けるために下記コードを使用していますが、日によって行数が変動するため1行のみの場合時間がかかりエラーが起こってしまいます。
データが複数行にある際は問題なく動作しています。

Range("B4:AD4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy

過去の質問も見てみましたが、あまり同じ例がなく、また基礎知識も乏しいもので正確に動かせる自信がなくご質問させていただきました。
1行でも問題なく範囲コピーできるコードをご教示いただけますでしょうか。

よろしくお願いいたします。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 一行の場合、なぜ時間がかかるのかは 理解されているのでしょうかね?

 それはさておき

 シートのデータ配置の状態によって、使えるコードが変わってきます

    'A列と3行目がすべて空白セルの場合
    Range("B4").CurrentRegion.Resize(, 29).Copy

    'そうではない場合
    Range("B4").Resize(WorksheetFunction.CountA(Range("B4:B100")), 29).Copy

 B100 のところは、予想される最大行を設定してください

(渡辺ひかる) 2019/09/15(日) 10:53


ご返信ありがとうございます。

1行の際は最下部までコピーをしてしまっているからだと思います。

ご教示いただいた下のコードを使用したところ理想通りの動きをしてくれました。
2通りものコードをありがとうございます。
(素人) 2019/09/17(火) 14:43


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.