如何解决Worksheet.Protect 并不总是应用密码
在 Excel 2016 上,我想在快速访问工具栏中添加一个按钮,用于切换保护/取消保护活动工作表,始终使用相同的密码。
Sub Protection()
If ActiveSheet.ProtectContents Then
ActiveSheet.Unprotect Password:="TEST"
Else
ActiveSheet.Protect Password:="TEST"
End If
End Sub
一开始似乎工作正常。 但是当我执行以下操作时:
- 使用没有密码的常规 Excel 功能区按钮进行保护
- 使用宏取消保护(即使不需要密码也能工作,我认为这就是问题所在)
- 使用宏进行保护
- 使用常规 Excel 按钮取消保护:无需密码!!!
Sub Protection()
On Error Resume Next
If ActiveSheet.ProtectContents Then
ActiveSheet.Unprotect Password:=""
If Err.Number <> 0 Then
ActiveSheet.Unprotect Password:="TEST"
If Err.Number <> 0 Then
MsgBox ("The password is not the usual one.")
End If
End If
Else
ActiveSheet.Protect Password:="TEST"
End If
On Error GoTo 0
End Sub
然而,它看起来并不干净。 我在我的工作计算机 (Excel 2016) 上遇到此问题,但在我的个人计算机 (Excel 365) 上似乎没问题。
有没有更好的方法来确保应用正确的保护,无论用户之前对文件做了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。