アプリ版:「スタンプのみでお礼する」機能のリリースについて

処理の始めに、A列が空白になっている行があれば削除して次の処理
なければ、飛ばして次の処理へ進みたいのですが
Range("A2:A600").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
とすると、空白行がある場合はいいのですが
無い場合は、それが原因でエラーとなり次の処理へ進みません。
空白行が無い場合にも次の処理へ進むようにするには、どうしたらよいのでしょうか?

質問者からの補足コメント

  • ご回答いただきありがとうございます。
    やはりできません。

    なぜでしょうか?

    「空白行がある場合削除 マクロ」の補足画像1
    No.1の回答に寄せられた補足コメントです。 補足日時:2019/06/07 14:07

A 回答 (4件)

ダメでしたか・・・


では強制的にエラーを無視するようにしましょうか
On Error Resume Next
Range("A2:A600").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0

命令文の前に『On Error Resume Next』を記載してください
ただ注意点として、以降にプログラム記述がある場合に問題が発生しても全て無視されてしまうのでその下に必ず『On Error GoTo 0』を記載してください
    • good
    • 1

No3です



連投失礼。以下の方が良さそうな気がしましたので。

If WorksheetFunction.CountBlank(Range("A2:A600")) > 0 Then _
   Range("A2:A600").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    • good
    • 0

こんにちは



よこからですが・・・
No1様の回答で動作すると思うのですが、「該当セルが無い」とのエラーなので、A列全体に空白セルが存在しないってことですね。(めったに無い事とは思いますが・・・)

範囲に空白セルがないと、
 Range.SpecialCells(xlCellTypeBlanks)
を参照した時点でエラーが発生してしまうようですね。

それなので、No2様のようにエラー処理で回避するか、あるいは
 Set tmp = Intersect(Range("A2:A600"), Cells.SpecialCells(xlCellTypeBlanks))
 If Not tmp Is Nothing Then tmp.EntireRow.Delete
みたいな方法でも回避可能と思います。
(シート内の全セルが空白ではない場合は上記もダメですが)
    • good
    • 1

A1およびA601以降にはデータが入っていますか?


A1にタイトル行があり、601以降にデータが無いのであれば
Range("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Range指定を列全てにすれば回避できますよ
この回答への補足あり
    • good
    • 1

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

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


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