【问题标题】:Looping code failure循环代码失败
【发布时间】:2014-04-23 10:34:40
【问题描述】:

我想让以下代码在我的所有工作表中运行。我有大约20张。我错过了什么?

Sub Filter1()
    Dim wSheet As Worksheet
    Dim i As Long

    For i = 0 To ActiveWorkbook.Worksheets.Count        
       ActiveSheet.Range("$Q$1:$Q$90").AutoFilter Field:=1, Criteria1:="<>"
       ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
       ActiveSheet.Select        
    Next i

End Sub

【问题讨论】:

  • 您从未真正使用 i 来选择工作表?
  • ActiveSheet更改为ActiveWorkbook.Worksheets(i)并删除ActiveSheet.Select
  • 所以我这样做了:'过滤宏 Dim wSheet 作为工作表 Dim i As Long For i = 0 To ActiveWorkbook.Worksheets.Count ActiveWorkbook.Worksheets(i).Range("$Q$1:$Q $90").AutoFilter Field:=1, Criteria1:="" ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1 Next i End Sub
  • ActiveSheet.Outline. 也改为ActiveWorkbook.Worksheets(i).Outline.
  • Sub Filter1() ' ' 过滤宏 Dim wSheet As Worksheet Dim i As Long For i = 0 To ActiveWorkbook.Worksheets.Count ActiveWorkbook.Worksheets(i).Range("$Q$1:$Q $90").AutoFilter Field:=1, Criteria1:="" ActiveWorkbook.Worksheets(i).Outline.ShowLevels RowLevels:=0, ColumnLevels:=1 Next i End Sub

标签: excel vba loops worksheet


【解决方案1】:

试试这个:

Sub Filter1()
    Dim i As Integer
    For i = 1 To ThisWorkbook.Worksheets.Count
       ThisWorkbook.Worksheets(i).Range("$Q$1:$Q$90").AutoFilter Field:=1, Criteria1:="<>"
       ThisWorkbook.Worksheets(i).Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
    Next i
End Sub

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多