我有一个包含大量空白单元格的列,对于每个空白单元格,我想删除包含空白单元格的行以及它下面的行。它删除了一个空白单元格下方的每一行,这对我来说是非常棘手的。
答案 0 :(得分:0)
如果要搜索A列,则可以使用此代码删除所有包含空白单元格的行以及该行下方的行。当您删除行时,代码将从下到上进行搜索,以便不跳过任何行。
Sub DeleteRows()
For i = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row To 2 Step -1
If ActiveSheet.Cells(i, 1).Value = vbNullString Then
ActiveSheet.Cells(i, 1).EntireRow.Delete '~~> Removes the blank row
ActiveSheet.Cells(i, 1).EntireRow.Delete '~~> Removes the row that were under the blank row
End If
Next i
End Sub
答案 1 :(得分:0)
几分钟前发布的另一个答案接近正确答案。我修改它以使用递归,我尝试的几个测试场景似乎工作。诀窍是让它与多个空白行一起使用。
Public Sub DeleteBlanks(rng As Range)
Dim cell As Range
For Each cell In rng.Cells
EvaluateCell cell
Next cell
End Sub
Public Sub EvaluateCell(cell As Range)
If cell.Value = "" Then
If cell.Offset(1, 0).Value = "" Then
EvaluateCell cell.Offset(1, 0)
Else
cell.Offset(1, 0).EntireRow.Delete
End If
cell.EntireRow.Delete
End If
End Sub
Sub Testing()
DeleteBlanks Selection
End Sub