簡體   English   中英

將受保護的工作表宏應用於工作簿中的所有工作表

[英]Apply a protected sheet macro to all sheets in workbook

我有一個自動打開的宏,並應用一個特殊的表單保護,允許對特定表單程序數據進行分組和編輯。 我的宏是這樣的:

Private Sub Workbook_Open()
  With Worksheets("Program Data")
   .EnableOutlining = True
   .Protect UserInterfaceOnly:=True, AllowFiltering:=True, AllowFormattingColumns:=True,    
    AllowInsertingRows:=True
  End With
End Sub

現在,只要您打開文件,它就會立即運行,但它僅適用於程序數據。 我不知道如何更改with語句以適應整個工作簿,而無需逐個命名工作表。 但是有很多床單,所以這不是一個好選擇。 如何將此應用於文件中的所有工作表?

您可以像這樣循環遍歷工作表對象( UNTESTED )。

Private Sub Workbook_Open()
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        With ws
            .EnableOutlining = True
            .Protect UserInterfaceOnly:=True, AllowFiltering:=True, _
            AllowFormattingColumns:=True, AllowInsertingRows:=True
        End With
    Next
End Sub

您需要一個針對所有工作表的For循環。 基本上...

Private Sub Workbook_Open()
  Dim WS As Worksheet
  For Each WS in ThisWorkbook.Worksheets
    With WS
    .EnableOutlining = True
    .Protect UserInterfaceOnly:=True, AllowFiltering:=True, AllowFormattingColumns:=True,    
    AllowInsertingRows:=True
    End With
  Next WS
End Sub

如果這有幫助,請告訴我們。

嘗試這個

For i = 1 To Worksheets.Count - 1
    With Worksheets(i)
        .EnableOutlining = True
        .Protect UserInterfaceOnly:=True, AllowFiltering:=True,  AllowFormattingColumns:=True,     AllowInsertingRows:=True
    End With
Next

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM