Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel:允许在多个工作表上进行分组/大纲显示,并启用保护_Excel_Grouping_Protection_Outlining_Vba - Fatal编程技术网

Excel:允许在多个工作表上进行分组/大纲显示,并启用保护

Excel:允许在多个工作表上进行分组/大纲显示,并启用保护,excel,grouping,protection,outlining,vba,Excel,Grouping,Protection,Outlining,Vba,我正在尝试允许在启用保护的多个工作表上进行分组/大纲显示。 出于某些原因,excel在保护时没有一个简单的选项框来执行此操作-因此我使用以下宏代码: Sub group() ActiveSheet.EnableOutlining = True' ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True End Sub 打开工作簿时,我将其设置为自动运行宏。我的问题是,我希望它适用于所有工作表,而不仅仅是活动工作表。上面的代码在活动工

我正在尝试允许在启用保护的多个工作表上进行分组/大纲显示。 出于某些原因,excel在保护时没有一个简单的选项框来执行此操作-因此我使用以下宏代码:

Sub group()
ActiveSheet.EnableOutlining = True'
ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True
End Sub
打开工作簿时,我将其设置为自动运行宏。我的问题是,我希望它适用于所有工作表,而不仅仅是活动工作表。上面的代码在活动工作表上工作,但我仍然必须在其他工作表上手动运行宏,以允许大纲工作

我还需要一些灵活性,因为有时工作表会被添加或删除,我希望代码是灵活的,以便它总是影响所有工作表,而不必我命名代码中的每个工作表

这可能吗


谢谢。

我想这就是你想要的:

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
这可能是:

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
保罗,你好