Mik*_*e L 2 excel vba excel-vba
我有一个自动打开的宏,并应用一个特殊的表单保护,允许对特定表单程序数据进行分组和编辑.我的宏是这样的:
Private Sub Workbook_Open()
With Worksheets("Program Data")
.EnableOutlining = True
.Protect UserInterfaceOnly:=True, AllowFiltering:=True, AllowFormattingColumns:=True,
AllowInsertingRows:=True
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
现在,只要您打开文件,它就会立即运行,但它仅适用于程序数据.我不知道如何更改with语句以适应整个工作簿,而无需逐个命名工作表.但是有很多床单,所以这不是一个好选择.如何将此应用于文件中的所有工作表?
Sid*_*out 10
您可以像这样循环遍历工作表对象(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
Run Code Online (Sandbox Code Playgroud)
你想要一个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
Run Code Online (Sandbox Code Playgroud)
如果这有帮助,请告诉我们.