我同意@Richard Morgan 的观点……您所做的应该是有效的,因此可能需要更多信息。
微软对options to protect your Excel 2003 worksheets有一些建议。
这里有更多信息...
来自帮助文件(保护方法):
expression.Protect(Password, Structure, Windows)
表达式必需。返回工作簿对象的表达式。
Password Optional Variant. 为工作表或工作簿指定区分大小写密码的字符串。如果省略此参数,您可以在不使用密码的情况下取消保护工作表或工作簿。否则,您必须指定密码才能取消保护工作表或工作簿。如果您忘记密码,您将无法取消对工作表或工作簿的保护。最好将密码列表及其对应的文档名称保存在安全的地方。
Structure Optional Variant. 为真以保护工作簿的结构(工作表的相对位置)。默认值为 False。
Windows 可选变体。 为真以保护工作簿窗口。如果省略此参数,则窗口不受保护。
ActiveWorkbook.Protect Password:="password", Structure:=True, Windows:=True
如果您想在工作表级别工作,我在几年前需要保护/取消保护时使用过类似的东西:
Sub ProtectSheet()
ActiveSheet.Protect "password", True, True
End Sub
Sub UnProtectSheet()
ActiveSheet.Unprotect "password"
End Sub
Sub protectAll()
Dim myCount
Dim i
myCount = Application.Sheets.Count
Sheets(1).Select
For i = 1 To myCount
ActiveSheet.Protect "password", true, true
If i = myCount Then
End
End If
ActiveSheet.Next.Select
Next i
End Sub