如何解决Workbook_Open不适用于Workbook Protection
我正在使用Excel 2016,并在VBA的ThisWorkbook对象中编写了此代码:
Private Sub Workbook_Open()
ThisWorkbook.Protect (password = "password")
End Sub
它不起作用。此处的要点是,这应防止用户接触此工作簿中的Power Query功能。我已将其保存为启用宏的工作簿,同时启用了所有宏和事件,这是唯一打开的工作簿。
我还有以下附加代码:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Protect (password = "password")
ThisWorkbook.Save
End Sub
那也不起作用。如果我将“ ThisWorkbook.Protect”代码插入常规模块或工作表对象并手动运行,则效果很好,但是当我希望该特定excel文件在打开或关闭时自动运行此代码时,它不会执行此操作。 / p>
有什么想法会导致这种情况吗?
解决方法
出于某种原因,在受保护的工作簿上运行ThisWorkbook.Protect
似乎无法对其进行保护(即使我找不到任何说明其执行此操作的文档),因此请尝试以下操作:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not ThisWorkbook.ProtectStructure Then ThisWorkbook.Protect Password:="password"
ThisWorkbook.Save
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。