我有一个包含多个(查找)选项卡的工作簿,我不希望任何用户能够取消隐藏这些选项卡。但是,有一个选项卡,其中包含管理信息,我希望管理员用户能够看到。我有一个在取消隐藏此选项卡之前提示输入管理员密码的按钮和宏,但如果我保护工作簿结构(以便其他用户无法访问隐藏的选项卡),vba将失败。有没有办法从管理宏中保护/取消保护工作簿?我尝试了ActiveWorkbook.Unprotect、ActiveWorkbook.Protect和ActiveWorkbook.ProtectStructure的各种组合,但都没有用--无论是在管理宏还是在WorkbookOpen中。我最常遇到的错误消息是“无法分配给只读属性”,即使在我的代码顶部有了ActiveWorkbook.Unprotect之后也是如此。有人知道如何解决这个问题吗?我真的不想让所有的选项卡都打开,以便在管理工作表本身上使用第二个密码来取消隐藏-笨拙!
发布于 2015-07-14 16:49:41
将要隐藏的工作表的Visible属性设置为xlSheetVeryHidden,而不是保护整个工作簿,您可以在VBA编辑器的属性窗口中手动执行此操作。现在,这些工作表将不会显示在Unhide…对话框中。您的宏可以将仅用于管理的工作表的可见性从xlSheetVeryHidden切换到xlSheetVisible,然后再切换回来。
这本身并不能防止知道如何访问VBA编辑器和属性的用户访问您的工作簿,但如果您需要这样做,似乎有许多快速web搜索的答案-这可能取决于您的Excel版本。
https://stackoverflow.com/questions/31401728
复制相似问题