工作表为什么不用vba(不少人尝试过给工作表保护)

不少人尝试过给工作组设定工作表保护,但是,没能成功,而且,总不甘心。

工作表为什么不用vba(不少人尝试过给工作表保护)(1)

好在,用VBA处理起来不算麻烦。

右键点击任一工作表标签,将下面的代码粘贴到光标处:

  1. Sub 保护()
  2. Dim Sh As Worksheet
  3. For Each Sh In Worksheets
  4. Sh.Protect
  5. Next
  6. MsgBox "OK"

End Sub

将光标定位到该代码的任意位置,按F5运行该代码。

如果要给工作表保护设置密码,可在 Protect 后面写入密码,用空格分开,密码前后加上半角双引号,假如密码为123:

Sh.Protect "123"

如果要批量撤销工作表保护,可将命令Protect改为Unprotect,如果有密码,同样在后面写入密码,如:

  1. Sub 撤销保护()
  2. Dim Sh As Worksheet
  3. For Each Sh In Worksheets
  4. Sh.Unprotect "123"
  5. Next
  6. MsgBox "OK"
  7. End Sub

我们会注意到,Excel基本操作中,用同一个菜单项或命令按钮执行“保护”和“撤销保护”两个操作。我们也可以把上面两段代码合并为一段代码:

  1. Sub 保护全部工作表()
  2. Dim pc As Boolean, cMM$, Sh As Worksheet
  3. pc = Me.ProtectContents
  4. On Error Resume Next
  5. cMM = Application.InputBox("请输入" & IIf(pc, "撤销", "") & "工作表保护密码:", "密码", Type:=2)
  6. If cMM <> "123" Then Exit Sub '输入的密码是123
  7. Application.ScreenUpdating = False
  8. For Each Sh In Worksheets
  9. If pc Then
  10. Sh.Unprotect ("xx") '实际工作表保护密码是xx
  11. Else
  12. Sh.Protect ("xx")
  13. End If
  14. Next
  15. Application.ScreenUpdating = True
  16. End Sub

使用Excel的人中,一部分人的工作十分需要VBA的功能,比如分页打印,便他的工作需要中,除此以外,不再需要VBA,重要一点,他也没有学习VBA的兴趣。

他们需要一种拿来就用的,像新建、打开、保存、打印一样简单的功能。

为了能满足更多人的需求,欢迎各位共同出谋献策。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页