如何使用VBA保护工作表,同时允许组/解组功能工作?

时间:2016-10-17 12:09:32

标签: excel vba excel-vba

我使用以下代码来保护工作簿中的所有工作表:

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

但是,这可以防止使用组/取消组合功能隐藏/显示受保护工作表中的行。

是否有可能修改上述子以允许分组/取消分组以保持功能,同时还保护表格?

0 个答案:

没有答案