删除不连续的整行时出错

我有下面的代码看下来列Mfind空单元格。 每find一个空单元格,整个行就被删除。

代码总是留下一行未删除。

有人可以帮助确定代码有什么问题吗? 我怀疑在删除一行时,单元格数量出错了。

Private Sub CreateInvoice_Click() Dim LastRow As Long Dim cl As Range, rng As Range With Sheet4 LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row Set rng = Sheet4.Range("M1:M" & LastRow) For Each cl In rng If IsEmpty(cl) Then cl.EntireRow.Select ' MsgBox .Range("A" & cl.Row).Value & " has nothing in it" End If Next End With End Sub 

我会使用一个filter,因为它是删除空行的最快和最有效的方式。 另外下面不使用.Select方法。

 Sub RemoveEmpties() Dim ws As Worksheet Dim rng As Range Dim lastRow As Long Set ws = Sheet4 lastRow = ws.Range("M" & ws.Rows.Count).End(xlUp).Row Set rng = ws.Range("M1:M" & lastRow) With rng .AutoFilter Field:=1, Criteria1:="" .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete End With ws.AutoFilterMode = False End Sub 
 Columns("M:M").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.EntireRow.Delete 

尝试使用这个