如何清除其中一列中的空单元格的行,而不删除整行?

一个看似简单的问题:

我有列A:E中的数据。 列E在一些行中有一些空白单元格。

我想在E中删除包含空白单元格的所有行。 但是,下面是这个问题 ,后面还有其他数据。 如果我删除整行,这个数据也将被删除,这是我不想要的。

更具体地说,我需要:(1)检查E列的空白单元格(2)如果find空白单元格,清除具有此单元格的行,但仅列A:E(3)移动列中的数据A:E了

我试过了:

Range("E2:E100").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp 

但是这只是在列E中移动数据,而不是整行。

当然,我可以使用:

 Range("E2:E100").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 

但正如我所说,这将删除后续列中的数据,这是我不想要的。

有小费吗?

谢谢,

你不能移动整个,并留下一些行,这是一个矛盾。 这听起来像你想这样做:

 Range("A" & row & ":E" & row).Delete Shift:=xlUp 

行是你想要删除的行号

要删除“块”中的A:E,但保留其他列不变,完整的解决scheme是这样的

 Sub PartKill2() Dim rng1 As Range Dim rng2 As Range ActiveSheet.UsedRange On Error Resume Next Set rng1 = Columns("E").SpecialCells(xlBlanks) On Error GoTo 0 If rng1 Is Nothing Then Exit Sub For Each rng2 In rng1.Areas rng2.Cells(1).Offset(0, -4).Resize(rng2.Rows.Count, 5).Delete xlUp Next End Sub 

如果要删除E为空白的整行,而列F:End是空白的(但如果不这样做,则可以使用这个更复杂的版本)

 Sub PartKill1() Dim rng1 As Range Dim lngCell As Long Dim lngArea As Long ActiveSheet.UsedRange On Error Resume Next Set rng1 = Columns("E").SpecialCells(xlBlanks) On Error GoTo 0 If rng1 Is Nothing Then Exit Sub For lngArea = rng1.Areas.Count To 1 Step -1 For lngCell = rng1.Areas(lngArea).Cells.Count To 1 Step -1 If Application.CountA(Range(rng1.Areas(lngArea).Cells(lngCell).Offset(0, 1), Cells(rng1.Areas(lngArea).Cells(lngCell).Row, Columns.Count))) = 0 Then rng1.Areas(lngArea).Cells(lngCell).EntireRow.Delete End If Next Next End Sub 
Interesting Posts