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

Mic*_*chi 1 excel vba

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

现在我想要一个 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
Run Code Online (Sandbox Code Playgroud)

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

您知道我需要在 VBA 中修改什么才能折叠每个工作表中的所有组吗?

Miq*_*180 5

只需替换ActiveWindowb,就像这样,它就会起作用:

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
Run Code Online (Sandbox Code Playgroud)

编辑#1

较短的版本,参见。PEH的评论:

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

  • 一个命令就足够了:`b.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1`。应该更快。 (4认同)