如何自动删除Excel中包含“总计”的所有行?
在我的活动工作表称为报告我有2列I和F.
它有重复的单元格,其中包含文字“Grand Total” 。
如果它自动包含Grand Total,我想要删除整行。
VBA代码会很好。
使用以下VBA代码,可以快速删除具有特定单元值的行,请执行以下步骤:
-
select要删除特定行的范围。
-
单击开发人员> Visual Basic,将显示一个新的Microsoft Visual Basic应用程序窗口,单击插入>模块,然后将以下代码input到模块中:
基于单元格值(即总计)删除整个行的VBA代码:
Sub Delete_Rows() Dim rng As Range, cell As Range, del As Range Set rng = Intersect(Range("A1:D22"), ActiveSheet.UsedRange) For Each cell In rng If (cell.Value) = "Grand Total" _ Then If del Is Nothing Then Set del = cell Else: Set del = Union(del, cell) End If End If Next cell On Error Resume Next del.EntireRow.Delete End Sub
-
然后点击“播放/运行”button来运行代码,并删除具有一定数值的行。
(注意:如果在Excel中看不到“开发人员”选项卡请执行以下步骤:1)单击“Officebutton”,然后单击“Excel选项”。 2)在“热门”类别的“使用Excel的首选项”下,选中“function区”中的“显示开发人员”选项卡checkbox,然后单击“确定”。
使用AutoFilter
非常有效。 这也可以不使用VBA
(即手动)
主要分
Sub Main() Dim ws As Worksheet Dim rng1 As Range Dim StrIn As String Dim rng2 As Range Set ws = Sheets("Sheet1") Application.ScreenUpdating = False Set rng1 = ws.Range("F:F,I:I") StrIn = "Grand Total" For Each rng2 In rng1.Columns Call FilterCull(rng2, StrIn) Next Application.ScreenUpdating = True End Sub
删除小组
Sub FilterCull(ByVal rng2, ByVal StrIn) With rng2 .Parent.AutoFilterMode = False .AutoFilter Field:=1, Criteria1:=StrIn .EntireRow.Delete .Parent.AutoFilterMode = False End With End Sub
这应该有助于你开始。
另请参见类似的问题: 在Excel VBA中删除一行