ここから本文です

マクロ処理で空白セルがあったら処理を終了する方法 for Each r Intersect(Sheets...

tuy********さん

2014/4/2214:58:33

マクロ処理で空白セルがあったら処理を終了する方法
for Each r Intersect(Sheets("AAA").UsedRange,Columns("A:A")
If r.Value<>""Then …見よう見まねのマクロですが、空白を無視せず、空白で処理を中止したい。

補足gargohgさん ありがとうございます
全く間抜けな話しですが、1~2行目が空白で、そこは空白のままにしておかなければならないことに、教えていただいたマクロを動かして初めて気づきました <(_ _)> A行を処理するマクロなのですが、UsedRange,Columns("A:A")の部分を変更し、A3~A56をのみを処理するように変更はできるでしょうか?
ドジですいません。よろしくお願いします。

閲覧数:
11,637
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

gar********さん

編集あり2014/4/2217:09:02

今後もマクロをいじる機会があるなら少しづつでも勉強していくといいと思います。
Intersect(Range,Range)は二つのRangeのうち重なっている部分を取り出してくれる関数です。
Sheets("AAA").UsedRangeはAAAシートの使っているセル範囲を
Columns("A:A")はA列を意味しています。
つまりAAAシートの使っている範囲の内A列をFor Eachでひとつづつ処理を行っています。

A3~A56を処理するようにしたいならColumns("A:A")を
決め打ちで Range("A3:A56")とすればいいです。

マクロ実行ごとに最終行が変わる可能性があるのなら
Range(Cells(3,1),Cells(Rows.Count,1).End(xlUp))にすればいいです。
Cells(3,1)は3行1列目、つまりA3
Cells(Rows.Count,1)はA列の一番下のセルでそこからEnd(xlUp)で上に移動して最初のセルを表します。
----------------------------------------
今は空白でなければ処理をするコードになっているので
空白なら終了、それ以外なら処理という形に修正します。

If r.Value = "" Then
Exit Sub
Else
今までの処理
End if

質問した人からのコメント

2014/4/22 19:31:22

降参 gargohgさん
ご指導ありがとうございます。上手く動きました。
おっしゃる通り、これから少し勉強してみます。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる