1

我正在尝试允许对打开保护的多个工作表进行分组/概述。由于某种原因,excel在保护时没有一个简单的选项框来执行此操作——所以我使用了这个宏代码:

Sub group()
ActiveSheet.EnableOutlining = True'
ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True
End Sub

打开工作簿时,我将其设置为自动运行宏。我遇到的问题是我希望它适用于所有工作表,而不仅仅是活动工作表。上面的代码适用于活动工作表,但我仍然必须在其他工作表上手动运行宏以允许大纲工作。

我还需要一些灵活性,因为有时会添加或删除工作表,并且我希望代码具有灵活性,以便它始终影响所有工作表,而无需我在代码中命名每个工作表。

这可能吗?

谢谢你。

4

2 回答 2

2

可能应该是:

Option Explicit
Sub group()
Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets
    With ws
        .Protect Contents:=True, UserInterfaceOnly:=True
        .EnableOutlining = True 'add after adding protection to the sheet
    End With
Next ws 'you need the next rule for the "For" routine.
End Sub

问候保罗

于 2015-03-06T09:25:56.057 回答
0

我认为这就是你想要的:

Option Explicit
Sub group()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
    With ws
        .EnableOutlining = True '
        .Protect Contents:=True, UserInterfaceOnly:=True
    End With
End Sub
于 2013-05-02T19:02:23.717 回答