工作表保护设置使用ws.protect – 但不使用菜单取消保护(审查 – 取消保护表)
我有以下代码来保护Excel 2007中工作簿的图纸
Private Sub password_protectallsheets() For Each ws In Worksheets ws.protect Password = "edc1" Next End Sub
但是当我尝试通过Excel 2007菜单(复查 – >解除保护表单)使用密码取消保护表单时,表示您提供的密码不正确。
任何帮助非常感激。
密码参数需要用“:=”来指定 – 不只是“=”。 一般情况下,方法的参数是这样的:
ws.protect Password := "edc1"
为了让编译器捕获这些types的错误,在模块的开头总是使用Option Explicit,正如JMax在上面所做的那样。 当你这样做的时候,当你忘记“:”选项时,编译器会给你一个“Variable not Defined”的错误。Explicit会为你节省大量的时间和其他types的variables声明错误。 要为所有新模块启用它,请在VBE中选中工具>选项>编辑>需要variables声明。
我无法弄清的部分是为什么在没有“:”密码的情况下分配密码。 我本来希望工作表被保护,但没有密码。
Ws.Unprotect是否真的保护工作表? – 狡猾,它不保护一个工作表,它不设置保护
在macros中设置保护为什么不logging保护工作表,并看看代码
尝试:
Option Explicit Private Sub password_protectallsheets() Dim ws As Worksheet For Each ws In Worksheets ws.Protect "edc1" Next End Sub
没有password
键参数。
它在我的Excel 2007上工作。
顺便说一句,一定要复制/粘贴密码,或者确保检查最后一个字符是1
(1)还是l
(小写字母L
)。