通过VBA折叠每张工作表中的所有组

时间:2018-06-29 12:30:24

标签: excel excel-vba vba

我有一个包含不同工作表的Excel文件。每张纸的中都有groups

现在,我希望有一个VBA,它可以遍历每个工作表并折叠组。

因此,我编写了以下代码:

Sub Collapse()
    Dim b As Worksheet
    For Each b In Worksheets
        ActiveWindow.Outline.ShowLevels ColumnLevels:=1
        ActiveWindow.Outline.ShowLevels RowLevels:=1
    Next b
End Sub

不幸的是,对于此代码,我遇到了运行时错误438。

您知道我需要在VBA中进行哪些修改以折叠每个工作表中的所有组吗?

1 个答案:

答案 0 :(得分:1)

ActiveWindow替换为b,如下所示,它将起作用:

Sub Collapse()
    Dim b As Worksheet
    For Each b In Worksheets
        b.Outline.ShowLevels ColumnLevels:=1
        b.Outline.ShowLevels RowLevels:=1
    Next b
End Sub

编辑#1

更短版本,请参阅。 PEH的评论:

Sub Collapse()
    Dim b As Worksheet
    For Each b In Worksheets
        b.Outline.ShowLevels ColumnLevels:=1, RowLevels:=1
    Next b
End Sub