如何将此特定VBA代码应用于所有工作表

时间:2017-04-27 03:35:08

标签: excel vba excel-vba

我需要保护工作簿中的所有工作表,但仍然可以启用群组的折叠/扩展。我尝试在线搜索VBA代码,然后带着这个代码到达:

Option Explicit
Private Sub Workbook_Open()
    With Worksheets("Monitoring")
        .Protect Password:="", userinterfaceonly:=True
        .EnableOutlining = True
        .EnableAutoFilter = True
        If .FilterMode Then
           .ShowAllData
        End If
    End With
End Sub

但是,这仅适用于标有“监控”的单个工作表。这也插入VBA窗口中的“ThisWorkbook”文件中。我有大约50个工作表,我认为通用代码可以做到这一点。然而,在尝试谷歌之后,我尝试过的结果都没有。

我可以就此事请求你的帮助。谢谢,美好的一天! :):3

2 个答案:

答案 0 :(得分:0)

您需要添加的是For Each所有Worksheets循环:

Option Explicit

Private Sub Workbook_Open()

Dim ws As Worksheet

For Each ws In Worksheets
    With ws
        .Protect Password:="", userinterfaceonly:=True
        .EnableOutlining = True
        .EnableAutoFilter = True
        If .FilterMode Then
           .ShowAllData
        End If
    End With
Next ws

End Sub

答案 1 :(得分:0)

有些事情:

Option Explicit
Private Sub Workbook_Open()
    For Each sh In ThisWorkbook.Sheets
        With sh
            .Protect Password:="", userinterfaceonly:=True
            .EnableOutlining = True
            .EnableAutoFilter = True
            If .FilterMode Then
               .ShowAllData
            End If
        End With
    Next
End Sub