如何在VBA的帮助下删除excel单元格中的空行

时间:2016-05-22 21:25:22

标签: excel-vba vba excel

enter image description here

我想在VBA的帮助下删除excel单元格中的空行,它不会打扰单元格中的值

1 个答案:

答案 0 :(得分:0)

以下VBA代码应该在Excel中执行您需要的操作。在测试之前,请务必使用电子表格的副本,以防出现任何问题。

Sub RemoveEmptyRows()

Dim Rw As Range
With Application

        .Calculation = xlCalculationManual

        '.ScreenUpdating = False

    Selection.SpecialCells(xlCellTypeBlanks).Select
        For Each Rw In Selection.Rows

            If WorksheetFunction.CountA(Rw.EntireRow) = 0 Then

                Rw.EntireRow.Delete
                count = count + 1

            End If

        Next Rw

        .Calculation = xlCalculationAutomatic

        '.ScreenUpdating = True
End With
End Sub

请注意,如果您希望删除大量行,则取消注释“.ScreenUpdate = False / True”行可以加快删除过程。

算法:

  • 删除期间禁用公式计算。 (.Calculation = xlCalculationManual)
  • 在当前工作表中选择包含空白单元格的活动范围。 (SpecialCells(xlCellTypeBlanks)。选择)
  • 遍历每一行。 (每个人)
  • 如果行中没有任何单元格包含数据,则删除整行。 (CountA功能)
  • 启用公式计算以刷新值。 (.Calculation = xlCalculationAutomatic)