删除空行到底部

时间:2017-01-29 10:25:53

标签: excel vba excel-vba

我正在尝试将空行删除到底部。当我使用下面的方法时,我对表中的公式有疑问。

在右侧创建一个新列。使用公式= IF(C2<>“,2,1)并填写。 从窥探中隐藏列(只需右键单击顶部的灰色列标题即可隐藏它) 按此列排序,而不是C。

提前谢谢!

2 个答案:

答案 0 :(得分:3)

试试这个,

column c

中有空单元格时,它会删除并清空行

代码

Sub g()

 Dim r As Range
 Dim rng As Range

   For Each r In Range("C1:C" & Cells(Rows.Count, 3).End(xlUp).Row)
      If r = "" Then
         If Not rng Is Nothing Then Set rng = Union(rng, r) Else Set rng = r
      End If
   Next r
    rng.EntireRow.Copy
    Range("A" & Cells(Rows.Count, 3).End(xlUp).Row + 1).PasteSpecial (xlPasteValues)
    rng.EntireRow.Delete


End Sub 

答案 1 :(得分:0)

如果列D为空,您可以尝试以下代码:

Option Explicit

Sub main()
    With Range("C1", Cells(Rows.Count, 3).End(xlUp))
        .AutoFilter Field:=1, Criteria1:="<>"
        .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Copy
        .Offset(1, 1).PasteSpecial
        Application.CutCopyMode = False
        .Parent.AutoFilterMode = False
        .Value = .Offset(, 1).Value
        .Offset(, 1).ClearContents
    End With
End Sub