循环macros在步骤抛出时工作,但在自动运行时失败

我在理论上创build了一个macros来存储一个string作为variables,然后使用多个循环来自动过滤每个工作表中的每一列,并删除所有行中的string。

当击中F8来通过macros一切似乎工作正常,直到macros结束。 然而,只要我尝试只是运行button,它只能在选项卡,我有我想通过macros的初始单元格select的作品。

我正在运行Excel 2016,如果这有什么区别。

Sub Delete_Selection() Dim Selection As Range Dim Search As String Dim ColumnCount As Long Dim WS As Worksheet Dim J As Integer Set Selection = ActiveCell Search = Selection For i = 1 To Sheets.Count With Sheets(i) .AutoFilterMode = False Set WS = ActiveSheet ColumnCount = WS.Cells(2, WS.Columns.Count).End(xlToLeft).Column With .Range("A1").CurrentRegion For J = 1 To ColumnCount On Error Resume Next .AutoFilter J, Search .Offset(1).SpecialCells(12).EntireRow.Delete ActiveSheet.ShowAllData On Error GoTo 0 Next J End With .AutoFilterMode = False End With Next i End Sub 

干杯,

看来你想要select一个值的单元格,然后遍历所有的工作表,删除任何列中的值的行。

 Option Explicit Sub Delete_Selection() Dim srch As String Dim i As Long, j As Long srch = ActiveCell.Value2 For i = 1 To Worksheets.Count With Worksheets(i) If .AutoFilterMode Then .AutoFilterMode = False With .Range("A1").CurrentRegion For j = 1 To .Columns.Count .AutoFilter field:=j, Criteria1:=srch With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0) If CBool(Application.Subtotal(103, .Cells)) Then .EntireRow.Delete End If End With .AutoFilter field:=j Next j End With .AutoFilterMode = False End With Next i End Sub