如何清除其中一列中的空单元格的行,而不删除整行?
一个看似简单的问题:
我有列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