秘密基地、どこに作った?

いつもお世話になっております。

昨日、複数指定セルの末尾までを別シートに転記するVBAについて質問した者です。
https://oshiete.goo.ne.jp/qa/12967407.html

この度、新たにセルが非表示となっている場合のデータを別シートに転記する
処理が発生し、こちらのVBAについてご教示いただきたく質問させていただきました。
処理内容としましてはSub 右方向()の内容に非表示とされているセルは無視し、可視セルのみを
転記する処理を追加したい質問になります。

色々とネットの情報を調べたところ、こちらの記事で可視セルを転機することはできたのですが
https://vba-create.jp/vba-method-specialcells-vi …
昨日、作成していただきました上記のVBAに改良を加えたいのですが、どの様な構築になりますでしょうか。
どうぞよろしくお願いいたします。

A 回答 (2件)

こんばんは



単純に対象を可視セルのみコピーすれば良いのではないでしょうか?

>.Range(r, .Cells(Rows.Count, r.Column).End(xlUp)).Copy _
を可視セルのみにしたいのなら
.Range(r, .Cells(Rows.Count, r.Column).End(xlUp)).SpecialCells(xlCellTypeVisible).Copy _
とすれば良いだけ。

ただし、ご提示のサイトにも説明があるように、指定範囲内に可視セルが存在しない場合にはエラーになります。
これを避けるには、エラー処理を加えておくか、必ず可視となるセルを含むように範囲を設定しておくなどの対処法が考えられます。
    • good
    • 0
この回答へのお礼

fujillin様、回答ありがとうございます。
ご指摘の.Range(r, .Cells(Rows.Count, r.Column).End(xlUp)).SpecialCells(xlCellTypeVisible).Copy _
の修正で実現できました。
ありがとうございます!

お礼日時:2022/05/27 21:54

End(xlUp)は非表示を無視して、可視セルの最下行を取得してると思いますので、元のソースのままで動くと思うのですが、、



うまくいかなかったのですか?
    • good
    • 0

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

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


おすすめ情報

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