2016-09-06 56 views
0

我有下面的代码,将过滤和删除行。 但是我的担心,它抛出一个OK /取消选项的提示。 当我按“确定”它会删除行。但是,我不需要提示。VBA代码来删除过滤的数据

Range("B1").Select 
    Selection.AutoFilter 
     ActiveSheet.Range("A1").End(xlDown).AutoFilter Field:=2, Criteria1:="=*jpn*" _ 
      , Operator:=xlOr, Criteria2:="=*promo*" 
     ActiveSheet.UsedRange.Offset(1, 0).Resize(ActiveSheet.UsedRange.Rows.Count - 1).Rows.Delete 

请帮助我修改代码。基本上,我已经过滤了包含jpn或promo的数据并删除了整行。

回答

0

您应该检查以确保在尝试删除可见行之前要删除可见的行。

With ActiveSheet 
    If .AutoFilterMode Then .AutoFilterMode = False 
    With .Cells(1, 1).CurrentRegion 
     .AutoFilter Field:=2, Criteria1:="=*jpn*", _ 
        Operator:=xlOr, Criteria2:="=*promo*" 
     With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0) 
      If CBool(Application.Subtotal(103, .Cells)) Then _ 
       .EntireRow.Delete 
     End With 
    End With 
End Sub 
+0

非常感谢。你的代码工作了一种享受! – sady

+0

对不起一个问题。代码也会删除第1行的标题。我该如何避免这种情况? – sady

+0

我的歉意;我没有偏离标题行。以上更正。 – Jeeped