删除数据之间的空白行

时间:2017-10-11 19:04:00

标签: excel vba excel-formula

我试图创建一个公式或vba代码,它将删除它们之间的B列中的空行并将它们连接到D列。查看图片以供参考。

enter image description here

3 个答案:

答案 0 :(得分:1)

公式方法。输入此公式

=IFERROR(INDEX($B$1:$B$800, SMALL(IF(($B$1:$B$800)="", "", ROW($B$1:$B$800)-MIN(ROW($B$1:$B$800))+1), ROW(A1))),"")
单元格E1中的

并将其拖动到下方。您必须使用CTRL + SHIFT + ENTER输入它,因为它是一个数组公式。

然后输入此公式

=IFERROR(INDIRECT("A"&IFERROR(SMALL(IF(($B$1:$B$800)="","",ROW($B$1:$B$800)-MIN(ROW($B$1:$B$800))+1),ROW(A1)),0)),"")
单元格D1中的

并将其拖到底部。这也是数组公式,因此您需要使用CTRL + SHIFT + ENTER组合确认它。

enter image description here

答案 1 :(得分:0)

试试这个,

 Sub test()
    Sheets("Sheet2").Range("D1:E200").Value = Sheets("Sheet1").Range("A1:B200").Value
    Sheets("Sheet2").Range("D1:E200").SpecialCells(xlCellTypeBlanks).Delete xlShiftUp
    Sheets("Sheet1").Range("D1:E200").Value = Sheets("Sheet2").Range("D1:E200").Value  
End Sub

答案 2 :(得分:0)

我多次使用这一点代码来删除报告中的空白行。它会在列#34; A"中找到包含数据的最后一行。如果没有任何内容,请删除该行。

lastRow = Cells(Rows.Count, "A").End(xlUp).Row

Do While lastRow >= 1
If Cells(lastRow, 1).Value = "" Then Rows(lastRow).Delete
lastRow = lastRow - 1
Loop