-1
我有一個包含大量空白單元格的列,對於每個空白單元格,我想刪除包含空白單元格的行以及其下面的行。它正在刪除空白單元格下方的每一行,這對我來說已證明非常棘手。如果列中的前一個單元格爲空,則刪除行
我有一個包含大量空白單元格的列,對於每個空白單元格,我想刪除包含空白單元格的行以及其下面的行。它正在刪除空白單元格下方的每一行,這對我來說已證明非常棘手。如果列中的前一個單元格爲空,則刪除行
如果要搜索列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
有另一種答案貼在幾分鐘前,這是接近正確的答案。我修改它以使用遞歸,並且我嘗試的幾個測試場景似乎工作。訣竅是讓它與多個空白行一起工作。
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
請分享您的嘗試。 – zx8754
你可以發佈你所做的代碼示例嗎? – Phlume