如果某些单元格在VBA中为空,如何删除一行

时间:2019-06-16 13:24:45

标签: excel vba

如果某个范围内的单元格全部为空白,我将尝试删除整行。

例如,对于范围B6-H10,如果B6-H6中的值为空白,则删除第6行。值得注意的是,将在整个范围内填充A列。

目前,正在返回以下错误:

“无法在重叠的部分上使用该命令”

我认为此错误是由于给定范围内的一个单元格中存在一个值而导致的。

当前代码可在以下位置找到:-

  Public Sub DeleteERows()

  Dim rng As Range

  Set rng = Range("B6:H10")

  rng.SpecialCells(xlCellTypeBlanks).EntireRow.Select
  rng.SpecialCells(xlCellTypeBlanks).EntireRow.Delete

  End Sub

任何想法都值得赞赏。

1 个答案:

答案 0 :(得分:2)

确实有多种方法,但是让我开始向您保证,您真正想做的是avoid .Select

相反,请尝试:

Option Explicit

Sub DelRows()

Dim X As Long
With ThisWorkbook.Sheets("Sheet1") '<-- Your sheetname goes here
    For X = 10 To 6 Step -1
        If Application.WorksheetFunction.CountA(.Range(.Cells(X, 2), .Cells(X, 8))) = 0 Then
            .Rows(X).EntireRow.Delete
        End If
    Next X
End With

End Sub