我们可以使用工作表函数 CountA 判断工作表中哪些行是空行,再进行删除。
判断是否为空行
以下示例代码判断活动工作表中第 2 行的非空单元格总数是否为0,如果为0,则显示“第二行是空行”。
Sub CheckBlankRow()
If Application.WorksheetFunction.CountA(Rows(2)) = 0 Then
MsgBox "第二行是空行"
End If
End Sub
删除空行
以下示例代码删除当前活动工作表中所有空行。
Sub DeleteBlankRows()
Dim FirstRow As Long
Dim LastRow As Long
Dim i As Long
'获取数据区域首行的行号
FirstRow = ActiveSheet.UsedRange.Row
'获取最后一行的行号
LastRow = FirstRow + ActiveSheet.UsedRange.Rows.Count - 1
'从最后一行开始往前遍历
For i = LastRow To 1 Step -1
'判断当前行是否为空行
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
'如果是空行则删除
Rows(i).Delete
End If
Next i
End Sub
如果我们知道第一列(即 A 列)始终包含数据,为了获取最后一行的行号,我们还可以使用如下 VBA 代码:
LastRow = Cells(Rows.Count, 1).End(xlUp).Row '获取最后一行的行号
或者:
LastRow = Range("A" & Rows.Count).End(xlUp).Row '获取最后一行的行号