「一気に最後まで読んだ」本、教えて下さい!

【やりたい事】
A1からC3の見ているセルのみをコピーしたいです

以下コード実行すると、関数が入っている行の
A1からC5までがコピーされてしまいます

ご存じの方、ご指摘宜しくお願いします

【条件】
・C1からC5まで、以下関数が入っています
=IF(E1="","","あいうえお")

・本表のAからCまでの列は常に固定

・行は最終行が、E列のデータ入力によって変動



【コード 動きます】
Sub 可視セルコピー()

Range("A1", Cells(Rows.Count, 3).End(xlUp)).Copy


End Sub

「【マクロ】可視セルのみコピーするには」の質問画像

A 回答 (5件)

>E列は、順番に名前がはいります


>なので、そこから、C列の行の
>数が、わかります 

であれば、以下のようにしてください。
Sub 可視セルコピー()
Dim lastrow As Long
lastrow = Cells(Rows.count, 5).End(xlUp).Row
Range("A1", "C" & lastrow).Copy
End Sub
    • good
    • 1

>本データがあるところだけをコピーして、また、別ブックの表に値貼り付けます


値貼り付けすることまでは想像つきますが、空文字列のセルを除外する必要性はわかりません。元々データの入っている領域を上書きするのでしょうか。
これまでいろいろマクロを組んできましたが、領域指定してコピペってのは無いですね。今回のような例だと、行を上から順にチェックしてE列に値が入ってたらA〜C列の値を転記するというのはよくあります。その方がE列にとびとびに値が入っている場合にも対応できるし、転記時に一部加工するのも簡単です。
    • good
    • 1

No.1の回答で良さそうですが、こういうコピーの仕方をする理由が思い浮かびません。

それも含めて相談されると、より適切なアドバイスを受けられそうな気がします。
    • good
    • 0
この回答へのお礼

お部屋ありがとうございます

本データがあるところだけを
コピーして、また、別ブックの
表に値貼り付けます

お礼日時:2024/08/15 13:56

E列は、必ず1行から順に、氏名が記入されるのでしょうか。


例えば、上記の図のE5に山田が記入されているケース(E4は空白)
は、あるのでしょうか。
その場合は、A1:C5がコピー範囲になっても良いのでしょうか。
(4行は空白になります)
    • good
    • 0
この回答へのお礼

御指導ありがとうございます

E列は、順番に名前がはいります
なので、そこから、C列の行の
数が、わかります 

ヒントありがとうございます

お礼日時:2024/08/15 13:55

E列を基準にすれば良いのでは?



Range("A1", Cells(Range("E65536").End(xlUp).Row, 3)).Copy
    • good
    • 0
この回答へのお礼

御指導ありがとうござきます
ヒントありがとうございます

高にE列は、空白行は、本当の
空白なので、そこから、行数を
はかって、A1からC列の最終行までにて、試してみたいと思います

お礼日時:2024/08/15 13:54

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A