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

xlDownの使い分けについての質問です
vbaでxlDownを使って一覧近い空白までのセルをコピーしようとしています。
例えばA1からB3に数値が入っており、A4が空白の場合
A1からA3までをコピーします。
数値がA1にだけ入っている場合は、xlDownを使うと、A2以降の空白もコピーしてしまうのですが
A1だけ選択する方法はありますでしょうか。
①A1以降数値が入っている場合、1番近い空白までをコピー
②A1のみに数値が入っている場合、A1のみコピー
③A1を含め全て空白の場合、コピーしない

A 回答 (3件)

こんにちは


書き方は色々ありますのでどの様な書き方が分かり易いのか・・・
ActiveCellとして書いて見ます

Sub test()
Range("A1").Select
If ActiveCell <> "" Then '③用分岐
If ActiveCell.Offset(1) <> "" Then '②用分岐
Range(ActiveCell, ActiveCell.End(xlDown)).Copy
Else
ActiveCell.Copy 'A1のみコピー
End If
End If
End Sub

どうでしょう
    • good
    • 0
この回答へのお礼

詳しい回答ありがとうございます。
思っていたとおりに出来ました
助かりました

お礼日時:2022/08/05 20:14

単純にrange("a1").end(xldown).rowが2だったら


resizeする、ではダメなんですか?
    • good
    • 0

#1です


途中に空白セルがありその上のセルが基準になる事はありますか?
その場合、次の空白前までコピーしたい場合は
If ActiveCell.Offset(1) <> "" Then '②用分岐 はダメなので

If ActiveCell.End(xlDown) <> Cells(Rows.Count) Then '②用分岐
のような感じです

空白行は区切りの意味だと思いますので考えすぎかもしれませんね
    • good
    • 0
この回答へのお礼

回答ありがとうございます
分かりやすく助かりました。

お礼日時:2022/08/05 20:14

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