📜  excel vba删除空行 - VBA(1)

📅  最后修改于: 2023-12-03 15:30:39.984000             🧑  作者: Mango

Excel VBA删除空行

在使用Excel时,我们常常遇到需要删除空行的情况。手动删除空行会很费时费力,不如编写VBA程序来完成此任务。下面介绍一种简单的VBA删除空行的方法。

实现方法

利用Excel的自动筛选功能,将空行筛选出来,再一行一行地删除。

Sub DeleteBlankRows()
    Dim lastRow As Long
    Dim i As Long
    Dim j As Long
    
    lastRow = Range("A1").SpecialCells(xlLastCell).Row ' 获取表格最后一行
    
    For i = lastRow To 1 Step -1 ' 倒序遍历每一行
        If WorksheetFunction.CountA(Rows(i)) = 0 Then
            Rows(i).Delete Shift:=xlUp ' 如果该行所有单元格为空,则删除该行
        End If
    Next i
End Sub
代码解释
  1. 首先获取表格最后一行的行号。
    lastRow = Range("A1").SpecialCells(xlLastCell).Row
    
    该语句是利用Range对象的SpecialCells方法找到最后一个非空单元格,并返回该单元格所在行的行号。
  2. 然后倒序遍历每一行,判断该行是否为空行。
    For i = lastRow To 1 Step -1 ' 倒序遍历每一行
        If WorksheetFunction.CountA(Rows(i)) = 0 Then
    
    该语句中,CountA函数用于计算该行中非空单元格的数量。如果该行中所有单元格都为空,则其返回值为0,即该行为空行。
  3. 如果该行为空行,则删除该行。
    Rows(i).Delete Shift:=xlUp
    
    该语句中的Shift参数用于指定删除后如何调整表格的位置,xlUp表示将删除的行向上移动,等效于手动删除一行时按下Shift键。
总结

使用上述方法可以快速删除Excel表格中的空行,提高工作效率。如果需要删除某些特定的行,如指定某一列为空时删除该行,则需要做一些修改。