如果任何列为空,如何删除行

时间:2014-05-28 14:20:08

标签: excel vba excel-vba excel-2010

我有一个包含大量数据和大量列的工作表,因此我无法手动执行此操作。

我在这里搜索了一些答案,但是如果特定列为空,则只找到删除行的方法,但我希望标准是任何列都是空白的。

任何人都可以告诉我如何在VBA中做到这一点?

2 个答案:

答案 0 :(得分:0)

这是一种方式:

Sub test()
Dim i As Long

With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With

For i = 10 To 2 Step -1
    If (Application.WorksheetFunction.CountBlank(Sheet1.Range("A" & i & ":H" & i))) >= 1 Then
        Sheet1.Range("A" & i).EntireRow.Delete
    End If
Next i

With Application
    .ScreenUpdating = True
    .Calculation = xAutomatic
End With

End Sub

请记住,这假设您正在使用Sheet1并且仅检查单元格A到H中的值。另外,我使用硬编码循环进行演示。在您的应用程序中,您应该在代码中找到最后一行并使用它而不是假设您想要从10到2。

此外,删除行时,您应该自下而上。

答案 1 :(得分:0)

如果准备添加一个带有公式的辅助列,如果没有VBA非常简单:

=COUNTBLANK(A1:F1)  

向下复制到suit,其中F表示包含任何数据的最后一列(通常最右边)。过滤帮助列以选择列号(对于F为6)并删除选择。