您好,我创建了以下两个宏,但是它在最后一个带有数据的单元格之后插入一行。我相信这是我的循环条件为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