当您使用包含从其他人那里收到的信息的数据表时,如果满足特定条件,则可能需要删除行以减少表中的数据量。您可以通过几种方法来执行此任务。

第一种方法是使用Excel的自动筛选功能。如果您有删除行的简单标准,则此方法特别有用。当您打开自动筛选时,Excel在数据表的标题行中每个单元格的右侧放置下拉按钮。

使用这些下拉按钮,您可以指定要显示的记录。您应该选择一个过滤器值,该过滤器值将导致仅显示要删除的行。显示这些行后,您可以选择它们并使用功能区工具摆脱这些行。当您关闭“自动筛选”时,仅剩下您想要的行。

另一种方法涉及使用宏为您执行删除操作。

如果必须对大量数据执行删除操作,或者经常执行删除操作,则此方法效果很好。以下宏可以基于键值删除行:

Sub DeleteRows()

Dim strToDelete As String     Dim rngSrc As Range     Dim NumRows As Integer     Dim ThisRow As Integer     Dim ThatRow As Integer     Dim ThisCol As Integer     Dim J As Integer     Dim DeletedRows As Integer

strToDelete = InputBox("Value to Trigger Delete?", "Delete Rows")

Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)



NumRows = rngSrc.Rows.Count     ThisRow = rngSrc.Row     ThatRow = ThisRow + NumRows - 1     ThisCol = rngSrc.Column

For J = ThatRow To ThisRow Step -1         If Cells(J, ThisCol) = strToDelete Then             Rows(J).Select             Selection.Delete Shift:=xlUp             DeletedRows = DeletedRows + 1         End If     Next J     MsgBox "Number of deleted rows: " & DeletedRows End Sub

若要使用宏,请选择覆盖要检查的行的键范围。例如,如果要检查的键在G列中,并且您想检查5至73行,则可以选择范围G5:G73。当您运行宏时,它将询问您应检查的值。如果G5:G73范围内的任何单元格包含您指定的值,则该单元格的对应行将被删除。

显然,还有其他方法可以基于值删除行。要选择各种不同的方法,请查看Ozgrid的Dave Hawley的以下页面:

http://www.ozgrid.com/VBA/VBACode.htm

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12256)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:

链接:/ excel-Conditionally_Deleting_Rows [有条件地删除行]。