我使用以下代码来保护工作簿中的所有工作表:
Sub protect_all_sheets()
top:
pass = InputBox("Please input password to protect all sheets:")
repass = InputBox("Please verify password")
If Not (pass = repass) Then
MsgBox "Error: Passwords do not match"
GoTo top
End If
optimize_vba True
For i = 1 To Worksheets.Count
If Worksheets(i).ProtectContents = True Then GoTo unprotect_msg
Next
For Each s In ActiveWorkbook.Worksheets
s.Protect Password:=pass
Next
optimize_vba False
Worksheets("1. Model Results Overview>").Activate
Exit Sub
unprotect_msg: MsgBox "Some sheets are already protected. Please unprotect all sheets before re-protecting them."
optimize_vba False
End Sub
但是,这可以防止使用组/取消组合功能隐藏/显示受保护工作表中的行。
是否有可能修改上述子以允许分组/取消分组以保持功能,同时还保护表格?