删除空白行(Microsoft Excel)
Kris有一个工作表,其中数据中有大量空白行。他正在寻找一个简单的宏,该宏将删除所有完全空白的行。
有多种方法可以完成此任务。以下各节研究了摆脱这些麻烦行的所有各种想法。
选择空格
检查空白位置的一种快速方法是只选择数据中的空白。请按照下列步骤操作:
。选择所有正在使用的数据。
。按F5。 Excel将显示“转到”对话框。
。单击特殊。 Excel将显示“转到特殊”对话框。 (请参见图1。)
。选择空白单选按钮。
。单击确定。 Excel在您的起始范围内选择这些单元格(步骤1)
那是空白的。
。显示功能区的“主页”选项卡。
。单击删除工具。 Excel删除行。
使用此方法有一个很大的警告:它将删除任何单元格为空的任何行。换句话说,如果数据中仅有空白的行实际上是您要删除的行,则此方法是最好的。
如果您要保留的数据中散布着一些空单元格,请不要使用此方法,因为它也会删除这些行。
_排序
|如果您的数据不是由很多行组成(例如,只有十列或更少),则可以考虑仅对数据进行排序。如果将每一列都包含在排序规范中,那么最终将得到所有空白行,并且可以轻松删除它们。
如果数据中有很多列,并且您不介意添加辅助列,则可以在排序方法的一种变体中摆脱空白行。假设您的数据在A到P列中。在Q列中,输入以下公式之一:
=COUNTA(A1:P1) =IF(COUNTBLANK(A1:P1)=16,"DELETE","")
使用哪一个都没关系;他们都会为您提供可以合作的信息。对于COUNTA公式,您只需要根据Q列排序并删除该列中带有0的任何内容。
对于COUNTBLANK公式,您需要将等值(16)更改为要考虑COUNTBLANK函数的任何列。 (在这种情况下,16是A:P范围内的列数,包括端值。)在公式到位后,您可以按列Q进行排序,然后只需删除该列中所有具有单词“ DELETE”的行。
排序方法的另一个变体是仅使用Excel的过滤功能来过滤列表,以仅在一个数据列中包含空白。 (例如,您可以过滤A列中的空白。)然后可以对其余的列进行排序,以便将整个空白行放在一个位置,然后删除这些行。
Macros
如果您需要经常删除空白行,那么您将需要认真考虑使用宏来完成这项艰苦的工作。您的宏可以轻松地添加到功能区或分配给快捷键,因此您可以非常轻松地调用它。
在本技巧的前面,我提到过,如果需要,可以使用“转到特殊位置”对话框来选择数据范围内的空白单元格,然后删除这些空白单元格所在的行。您可以在ver简单的宏中执行相同的操作:
Sub DeleteBlanks() Dim R As Range Set R = Range("A1:" & ActiveCell.SpecialCells(xlLastCell).Address) R.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
但是请记住,即使您希望保留该行上的其他数据,该宏也会删除任何有空格的行。
更好的方法是对工作表中的每一行进行更全面的检查:
Sub DeleteBlankRows() Dim lRows As Long Dim J As Long lRows = ActiveCell.SpecialCells(xlLastCell).Row Application.ScreenUpdating = False For J = lRows To 1 Step -1 If WorksheetFunction.CountA(Rows(J)) = 0 Then Rows(J).Delete Next J Application.ScreenUpdating = True End Sub
请注意,宏确定工作簿中使用的最后一个单元格,并将lRows值设置为等于该单元格所在行。然后For … Next循环遍历每一行(从最后一行到第一行)
并使用COUNTA函数确定该行上是否有任何内容。如果不是,则删除该行。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(254)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。