一个excel下面同时有多个工作表,每个都被保护了,请问怎样同时取消多个工作表的保护.一个一个修改太麻烦

如题所述

Sub 对所有工作表保护或撒消保护()
M = MsgBox("以前已保护的工作表密码不变,若要统一密码请先撒消已保护的工作表。" & Chr(10) & "选[是]对所有工作表进行保护,选[否]对所有工作表撒消保护。", vbYesNoCancel)

If M = vbYes Then
a = InputBox("请输入工作表保护密码:")
For N = 1 To Worksheets.Count
Worksheets(N).Protect Password:=a, DrawingObjects:=True, Contents:=True, Scenarios:=True
Next
End If

If M = vbNo Then
Line1: a = InputBox("请输入工作表撒消保护密码:")
For N = 1 To Worksheets.Count
On Error Resume Next
Worksheets(N).Unprotect Password:=a
If Err.Number <> 0 And E = 0 Then
E = N
End If
Next
If E <> 0 Then
Worksheets(E).Select
E = 0
M = MsgBox("对于此表密码不正确,是否重新输入?", vbYesNo)
If M = vbYes Then GoTo Line1
End If
End If
End Sub

上述代码可以选择性实现同时保护,和同时撤销保护,

具体操作如下:
1、 ALT+F11进入VB,菜单中选“插入”—>“模块”,然复制上述代码 粘入 窗口中,关闭VB回到EXCEL。
2、 ALT+F8 弹出宏对话框,点“执行”按钮,弹出对话框,点“是”对其保护,点“否”取消保护。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-15
Sub test()
Dim sht As Worksheet
For Each sht In Worksheets
sht.Unprotect Password:="a1"
Next
End Sub
-----
将a1换成楼主设置的密码即可。
第2个回答  2010-10-15
vba代码
相似回答