首页 > 解决方案 > 如果某些单元格在 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

任何想法都非常感谢。

标签: excelvba

解决方案


确实有多种方法,但让我首先向您保证,您真正想要做的是避免.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

推荐阅读