我有一个xlsm工作簿和2张,我将其称为工作簿1,工作表1可见,工作表2设置为xlsheetveryhidden。然后设置密码。
现在情况应该是没有人可以手动取消隐藏表2,对吧?
现在我打开另一个工作簿,我将其称为工作簿2,在工作簿2中打开vbe,只需键入以下代码并针对工作簿1,工作表2是可见的:
Sub InvisibleSheet2Fails()
Sheets(2).Visible = xlSheetVisible
End Sub
我的问题是:如何才能取消工作簿1的密码?工作簿2不知道工作簿1 vbe密码,但可以轻松绕过xlsheetveryhidden设置。
非常感谢你!
劳伦斯
没有安全保障100%安全。如果您的威胁模型是高级用户,知道如何启动VBE并且您不希望它们摆弄,您至少可以使用密码保护工作簿结构。
ThisWorkbook.Protect "password", Structure:=true
从即时窗格执行此操作,不要将密码放在代码中的任何位置 - 另一方面VBE密码保护(您似乎将VBA项目保护和工作簿结构保护混为一谈),绝对是easily defeated,在任何时候;如果您已在代码中的任何位置写入密码,请考虑将其泄露。
使用一个好的,强大的密码,如果你使用的是最新版本的Excel,并且有人设法取消保护工作簿,他们应该调整它。
如果您的威胁模型是MI6代理,如果他们首先访问该文件,您已经丢失:将文件放在安全的地方,实现良好的网络安全性。
老实说,我没有找到一个无法入侵的办公室文件。
除了可以购买的工具之外,你也可以免费找到它们。
如果您真的非常认真地保护这些文件,您可以尝试加密它们并仅允许那些拥有本地证书的人访问它们。
见Information Rights Management in Office
“如果您在尝试查看文档或电子邮件时遇到文件权限错误,那么您遇到了信息权限管理(IRM)。您可以使用IRM来限制Office文档,工作簿和演示文稿中内容的权限。 “