使用 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
我的代码有关于删除空白行的问题。它只需要删除一些行而不是所有空白行和值“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