2015-04-16 71 views
-3

左边是我有什么数据,右边是我需要的数据。删除空行

enter image description here

如果你认为一个非VBA的解决方案会更好,让我知道。

+2

有这里没有问题... –

+3

除了糖化土豆可能的例外,VBA是做**任何事情的最佳方式**。 –

+0

你正在寻找简单的堆叠值之间没有空格?如果是这样,请在它们之间插入一列,然后将公式= Row()添加到列b和d中,然后在公式上复制/粘贴值。然后,您可以按列A对列A:B进行排序,以将列a分组在一起。然后再对B:A进行排序,将它们重排到原来的排序顺序。重复列C:D。 – rgo

回答

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 

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

0

我认为解决您的问题的最佳方法是对不同的单元格进行排序。 您可以制作一个功能您可以在其中选择一个输入范围(截图中的列A和B),并使用VBA创建一个功能,用于检测空单元格并对范围进行排序。 为了检测空单元格,你可以使用IsEmpty(“你的单元格”)。

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 
0

在E使用阵列公式,

=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 +敲定 + Enter↵。如果输入正确,Excel将包含公式括号(例如{});你不要把它们放在自己身上。

一旦输入正确,填写正确的一列赶在B列中的值,然后填写E2:F2下来就必须抓住所有的唯一非空值的列A和B.