使用For Next删除空白行

我的代码有删除空行的问题。 它只是删除一些行,不是所有的空行和行值“0”。 我不想使用.SpecialCells(xlCellTypeBlanks)作为SO论坛上的一些威胁。

 Dim R As Integer R = Range("CuoiNKC").Row - 1 Dim DelCell As Range Dim DelRange As Range Set DelRange = Range("J9:J" & R) For Each DelCell In DelRange If DelCell.Value = "0" Or DelCell.Formula = Space(0) Then DelCell.EntireRow.Delete End If Next DelCel 

为什么不使用Range AutoFilter Method而不是循环。
假设你的代码中有正确的DelRange值,试试这个:

 DelRange.AutoFilter 1, AutoFilter 1, "=0", xlOr, "=" 'filtering 0 and space DelRange.SpecialCells(xlCellTypeVisible).EntireRow.Delete xlUp 'delete visible cells ActiveSheet.AutoFilterMode = False 'remove auto filter mode 

顺便说一句,如果你想坚持你的逻辑,你需要向后迭代行。
你只能用传统的For Next Loop来做到这一点。 再次假设R值是正确的。

 For i = R To 9 Step -1 If Range("J" & i).Value = "0" Or Range("J" & i).Value = " " Then Range("J" & i).EntireRow.Delete xlUp End If Next