使用 For Next 删除空白行

Delete blank row using For Next

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

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