- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:空白行の削除マクロについてご教示ください)
空白行の削除マクロについてご教示ください
このQ&Aのポイント
- 空白行の削除に、下記マクロを活用させていただいていますが、見た目空白なのに削除されない行が時々残ってしまいます。
- 削除されなかったセルを「Deleteキー」で空白にするとマクロが実行され、きちんと削除されます。
- こういった、スペースか何かが入っていても、見た目空白なら削除するようにはできないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>スペースか何かが入っていても sub macro1() dim s as long dim e as long dim r as long s = 5 e = range("A65536").end(xlup).row for r = e to s step -1 if application.trim(cells(r, "A")) = "" then cells(r, "A").entirerow.delete shift:=xlshiftup end if next r end sub
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
回答No.1
こんにちは! おそらく・・・ >For Each c In Range("a" & 開始行 & ":a" & 最終行) の部分でお望みの結果にならないと思います。 上の行から下に向かって操作を行いますので、行が削除されるたびにFor~Next が1行ずつずれますので 本来削除したい行を通り越して次の行の操作に入ってしまうのが原因と思われます。 ↓のような感じにしてみてはどうでしょうか? Sub 削除2() Dim i As Long Dim 開始行 As Long Dim 最終行 As Long 開始行 = 5 最終行 = Range("a5000").End(xlUp).Row For i = 最終行 To 開始行 Step -1 If Cells(i, "A").Value = "" Then Rows(i).Delete End If Next End Sub ※ 行の挿入・削除は最終行から上に向かっての操作にした方が間違いないと思います。m(_ _)m
お礼
早速のご教示ありがとうございました。 うまく削除できました。 早速、活用させていただきます。 また、よろしくお願いいたします。