こんにちは、次の 2 つのマクロを作成しましたが、データを含む最後のセルの後に行を挿入しています。これは、ループ条件がDo Until ActiveCell.Value = ""
. データのある最後のセルでループを停止したいと思います。
変数を使用してみDo Until Loop_Long = LastRow
ましたが、これはうまくいきませんでした。
私が望むのは、データが異なるセルの間にマクロを挿入することだけです。次に、前に挿入した列の空のセルを見つけて、行を削除するマクロ。
上で概説したように、問題は余分な行を挿入し、それを削除しないことです。列 A のデータの後に列 B のずっと下に値を入れると、私の意味がわかります。
これが私のコードです:
Option Explicit
Sub Macro1()
'Insert Blank Row Between Names
Sheets("Sheet1").Select
Range("A1").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value <> ActiveCell.Offset(1).Value Then
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Offset(1).Select
End If
ActiveCell.Offset(1).Select
Loop
End Sub
Sub Macro2()
Dim LastRow As Long
'Delete Inserted Rows
Sheets("Sheet1").Select
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A" & LastRow).Select
Do Until ActiveCell.Value = Range("A1")
If ActiveCell.Value <> ActiveCell.Offset(-1).Value Then
ActiveCell.Offset(-1).EntireRow.Delete Shift:=xlUp
ActiveCell.Offset(-1).Select
End If
ActiveCell.Offset(-1).Select
Loop
End Sub