|
楼主 |
发表于 2008-11-30 15:26
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
7、保护所有工作表
不少人尝试过给工作组设定工作表保护,但是,没能成功,而且,总不甘心。
好在,用VBA处理起来不算麻烦。
右键点击任一工作表标签,将下面的代码粘贴到光标处:- Sub 保护()
- Dim Sh As Worksheet
- For Each Sh In Worksheets
- Sh.Protect
- Next
- MsgBox "OK"
- End Sub
复制代码 将光标定位到该代码的任意位置,按F5运行该代码。
如果要给工作表保护设置密码,可在 Protect 后面写入密码,用空格分开,密码前后加上半角双引号,假如密码为123:
Sh.Protect "123"
如果要批量撤销工作表保护,可将命令Protect改为Unprotect,如果有密码,同样在后面写入密码,如:- Sub 撤销保护()
- Dim Sh As Worksheet
- For Each Sh In Worksheets
- Sh.Unprotect "123"
- Next
- MsgBox "OK"
- End Sub
复制代码
我们会注意到,Excel基本操作中,用同一个菜单项或命令按钮执行“保护”和“撤销保护”两个操作。我们也可以把上面两段代码合并为一段代码:
- Sub 保护全部工作表()
- Dim pc As Boolean, cMM$, Sh As Worksheet
- pc = Me.ProtectContents
- On Error Resume Next
- cMM = Application.InputBox("请输入" & IIf(pc, "撤销", "") & "工作表保护密码:", "密码", Type:=2)
- If cMM <> "123" Then Exit Sub '输入的密码是123
- Application.ScreenUpdating = False
- For Each Sh In Worksheets
- If pc Then
- Sh.Unprotect ("xx") '实际工作表保护密码是xx
- Else
- Sh.Protect ("xx")
- End If
- Next
- Application.ScreenUpdating = True
- End Sub
复制代码
参考附件:点击下载
|
评分
-
1
查看全部评分
-
|