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

VBAのコードについて質問させて下さい。

ネットで自分のイメージしたコードを探して下記コードで作動いたしましたが
タイトル通り、最後の行に空白行が含まれてしまいます。
解決方法をご教授ください。
よろしくお願いいたします。
※エリア全部ではありませんが実行結果を一部を画像添付致します。

-----------------------------------------------
Sub ボタン_Click()
With Range("A9")  ’エリア開始セル
.AutoFilter 1, "〇〇" ’特定文字
.CurrentRegion.Offset(1, 0).Copy
End With
End Sub
-----------------------------------------------

「【ExcelVBA】特定文字列のコピーで」の質問画像

A 回答 (2件)

こんにちは



>最後の行に空白行が含まれてしまいます。
表のうちタイトル行を除いた部分を対象にしたいのだと解釈しました。

ご提示のコードではOffset(1)で1行分シフトした範囲を対象にしているので、(ずらした)1行分だけ表外の行が含まれることになります。

全体の行数を1行減らしてあげれば良いので、そのまま記述すれば
.CurrentRegion.Offset(1).Resize(.CurrentRegion.Rows.Count - 1).Copy
とかでいけるものと思います。

もう少し短い記述にするなら
Intersect(.CurrentRegion, .CurrentRegion.Offset(1)).Copy
とかでしょうか。

他にも方法はいろいろあると思いますが、とりあえず。
    • good
    • 0
この回答へのお礼

>表のうちタイトル行を除いた部分を対象にしたいのだと解釈しました。
その通りでして解消出来ました。

ありがとうございました。。

お礼日時:2020/04/10 11:08

Sub aaa()


With Range("A9") 'エリア開始セル
.AutoFilter 1, "81" '特定文字
Range(Replace(.CurrentRegion.Offset(, 0).Address, "$A$9", "$A$10")).Copy
End With
End Sub

全体を1行下にシフトしたので、そうなります
    • good
    • 0
この回答へのお礼

助かりました

ご回答ありがとうございました。
説明が足りなかった?ようで下の行は削除されましたが
タイトル行が含まれてしまいました。

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

お礼日時:2020/04/10 11:05

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


おすすめ情報