再度訂正を入れます。2行空白が続くと1行削除しないロジックになっていて、誤りがあります。下記に訂正してください。済みません。
Sub test01()
p = 1
For i = 1 To 15
If Cells(p, 1) = "" Then
Cells(p, 1).EntireRow.Delete
Else
p = p + 1
End If
Next i
End Sub
空白が続いた部分は同じ行で、行Deleteを繰り返さないと
ダメなわけです。
[行の一部(A以外)に数式が入っている行は消えませんでした」は関係ないことが判りました。
#2で回答を入れたものです。よく考えると処理すべき最下行は、行削除と共にせりあがって来ることを思い出しました。最下行より下に別表があると消してしまうので修正します。最下行より下に別表がなければ実害はないが考慮不足ですので、お詫びして訂正させてください。
Sub test01()
d = 15
For i = 1 To d
If Cells(i, 1) = "" Then
Cells(i, 1).EntireRow.Delete
d = d - 1
End If
Next i
End Sub
なおDELETEキーでセル内容を空白にしたセルも「=""」
で判別できることがわかりました。
1.セルA3の行を削除するのはRange("A3").EntireRow.Deleteです。
消す行が変化しますのでCells(i,1).EntireRow.Deleteを使います。
これは第 i 行を抹消します。
2.あとは i 行が空白行かを判別すれば良いだけです。
3.第 i 行ですが、第1行i=1 から 最下行(仮に15行として)
i=15 まで変化させて空白かどうかを聞き(判別)します。
4.セルA1からA15までにデータの入ったセルといれてないセルを
作って
Sub test01()
For i = 1 To 15
If Cells(i, 1) = "" Then
Cells(i, 1).EntireRow.Delete
End If
Next i
End Sub
を実行すれば空白行がなくなりデータ行だけに詰まります。
実験してください。
5.あとはどの列で空白を判別するか、空白と見えるセル(行)は
本当に””か、違う場合もあり得ます。ただし新規シートの加工していない行の空白はIf Cells(i, 1) = "" Thenで聞けます。
6.あとプログラムの作成実行に関する経験の有無が判りません。
それで、マクロの記録を使って何でも良いから「Macro1」など作ってください。(1の部分は、過去のマクロ作成状況で大きな数になりますよね。)
そしてSub Macro1()とEnd Subを除いて消してください。
その後上記のプログラムのSub test01()とEnd Sub以外の中間部分をコピーして、Sub Macro1()とEnd Subの間に貼りつけてください。
そしてMacroの実行の要領はご存知でしょう。
補足
ありがとうございました。 早速マクロを組み込んで感激したところです。 改めてマクロってすごいと思いました。 ところで1つ問題が…。 行全体が空白の場合は問題なかったのですが 行の一部(A以外)に数式が入っている行は消えませんでした。 もう一度マクロにかけたら消えてくれるんですけどね。 2度やればいいことなのですが、できれば一度で処理できればと思います。