Excel 2010 仅删除特定的空白行

Excel 2010 仅删除特定的空白行

我们使用一款在 Excel 中生成财务概览的应用程序。(目前使用 Excel 2010。)由于该应用程序中的某些配置,有时会在 Excel 中的值之间生成 4 或 5 个空行,而我们只需要一个空行。我无法使用宏,因为这些多余的行每次都不在同一位置。

我想删除那些多余的空白行,但我不想全部删除。单个空白行就可以了,而且非常需要。有没有公式可以帮助我删除多余的空白行,减去应该存在的一个空白行?

希望你们能帮助我。

答案1

对于第一个标准,您可以使用工作表函数计算每行中有多少个单元格具有值CountA()

代码片段:

If .CountA(ws.rows(r)) = 0

然后,如果连续有多个空行,您只想删除该行,因此我们将其添加到我们的If...Then语句中。这将使用以下内容检查上面的行r - 1

... And .CountA(ws.Rows(r - 1)) = 0

这将检查上面的行是否为空;只有当它是空的时候,它才会将您的行添加到一个特殊范围,以跟踪您的行删除:delRng

以下是完整的 VBA 代码:

Sub removeEmptySpaces()

    Dim r As Long, ws As Worksheet, delRng As Range
    Set ws = ThisWorkbook.Worksheets(1)

    With Application.WorksheetFunction
        For r = 2 To lastRow(ws)
            If .CountA(ws.Rows(r)) = 0 And .CountA(ws.Rows(r - 1)) = 0 Then
                If delRng Is Nothing Then
                    Set delRng = ws.Rows(r)
                Else
                    Set delRng = Union(ws.Rows(r), delRng)
                End If
            End If
        Next
    End With

    If Not delRng Is Nothing Then delRng.Delete

End Sub

Function lastRow(ws As Worksheet, Optional col As Variant = 1) As Long
    With ws
        lastRow = .Cells(.Rows.Count, col).End(xlUp).Row
    End With
End Function

相关内容