如果多列为空,请删除行

时间:2013-07-22 10:19:33

标签: excel excel-vba row vba

我不熟悉宏和脚本。

如果第3,4和5列为空,我想删除该行。

Sub DeleteRows()
Columns(3).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

适用于案例只是第3行的情况,但我尝试了各种方法让它按预期工作;它们都会导致某种错误。

那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

试试这个:

Sub DeleteRows()
For i = 3 to 5
    Columns(i).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Next

唯一的问题是,如果没有空白单元格,它将返回错误。替代方法是检查在EntireRow.Delete之前是否有空单元格。

以下是您可以这样做的方法:

Sub DeleteRows()
Dim rngBlanks as Range
Dim i as Integer
For i = 3 to 5
    On Error Resume Next
    Set rngBlanks = Columns(i).SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rngBlanks is nothing then
        rngBlanks.EntireRow.Delete
    End if
Next

让我知道这是否有效以及是否需要更多解释!