【发布时间】: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