如何在vba中删除空行(附示例)
您可以在VBA中使用以下方法来删除空行:
方法一:删除特定范围内的空白行
Sub DeleteEmptyRowsInRange()
Sheets(" Sheet1 ").Select
Range(" A1:B10 ").Select
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
此特定宏将从Sheet1的A1: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 中执行其他常见任务: