如何在vba中删除空行(附示例)


您可以在VBA中使用以下方法来删除空行:

方法一:删除特定范围内的空白行

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

此特定宏将从Sheet1A1:B10范围中删除所有空白行。

方法2:删除整个工作表中的空白行

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

这个特定的宏将从整个活动工作表中删除所有空白行。

以下示例展示了如何在实践中使用每种方法。

示例1:删除特定范围内的空行

假设我们在 Excel 中有以下数据集,其中包含有关各种篮球运动员的信息:

我们可以创建以下宏来删除此工作表上A1:B10范围内的所有空白行:

 Sub DeleteEmptyRowsInRange()
    Sheets(" Sheet1 ").Select
    Range(" A1:B10 ").Select
    Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

运行该宏后,我们会收到以下输出:

请注意,所有空白行均已从我们指定的范围中删除。

示例 2:删除整个工作表中的空白行

假设我们在 Excel 中有以下数据集,其中包含有关各种篮球运动员的信息:

我们可以创建以下宏来删除整个工作表中的所有空白行:

 Sub DeleteEmptyRowsInSheet()
  
   'turn off screen updating for faster performance
    Application.ScreenUpdating = False
  
    Dim i As Long

    With ActiveSheet

    For i = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
        If WorksheetFunction.CountA(.Rows(i)) = 0 Then
            ActiveSheet.Rows(i).Delete
       End If
    Next

    End With
  
    'turn screen updating back on
    Application.ScreenUpdating = True
  
End Sub

运行该宏后,我们会收到以下输出:

请注意,所有空白行已从整个工作表中删除。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何根据单元格值删除行
VBA:如果名称包含特定文本,如何删除工作表
VBA:如何删除文件

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注