删除空行

时间:2015-04-16 19:23:25

标签: excel vba

如果我拥有哪些数据,那么左边是我需要数据的样子。

enter image description here

如果您认为非VBA解决方案会更好,请告诉我。

4 个答案:

答案 0 :(得分:0)

Sub RemoveBlankCells()

'Deletes single cells that are blank located inside a designated range
Dim rng As Range

    Set rng = Range("A1:A10").SpecialCells(xlCellTypeBlanks)
    rng.Rows.Delete Shift:=xlShiftUp

End Sub

这将选择一个范围并找到该范围内的任何空白单元格并将其删除。只需根据需要修改范围。

答案 1 :(得分:0)

我认为解决问题的最佳方法是对不同的细胞进行排序。 您可以创建一个函数,在此处选择输入范围(屏幕截图中的A列和B列),使用VBA,您可以创建一个检测空单元格并对范围进行排序的函数。 对于检测空单元格,您可以使用IsEmpty(“您的单元格”)。

答案 2 :(得分:0)

我通常会这样做:

LastRow = Cells(Rows.Count, 1).End(xlUp).Row 'Change number for column selection
Range("A1:A" & LastRow).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlShiftUp

在屏幕截图中,单元格从第1行开始,但删除空白单元格后,第一行为空白。如果您还需要这个,您可以使用:

Cells(1, 1).Insert 'Change second number for column selection

答案 3 :(得分:0)

在E2中使用此数组公式,

=IFERROR(INDEX(A$1:A$999, MATCH(0, IF(LEN(A$1:A$999), COUNTIF(E$1:E1, A$1:A$999), 1), 0)), "")

需要使用 Ctrl + Shift + Enter↵来最终确定数组公式。如果输入正确,Excel将公式包装在大括号中(例如 {} );你不要把它们放在自己身上。

正确输入后,填写右栏一列以捕捉B栏中的值,然后根据需要填写E2:F2,以捕捉A栏和B栏中的所有唯一非空白值。