![](/img/trans.png)
[英]Excel 2007 macro fills to end of first sheet for all sheets in workbook
[英]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.