我有一个包含不同工作表的 Excel 文件。每个工作表groups都有Columns和Rows。
现在我想要一个 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 中修改什么才能折叠每个工作表中的所有组吗?
只需替换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
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)