我有一个工作簿,其中包含几个(查找)选项卡,我不希望任何用户能够取消隐藏。但是,有一个选项卡包含我希望管理员用户能够看到的管理员信息。我有一个按钮和宏,在取消隐藏此选项卡之前会提示输入管理员密码,但如果我保护工作簿结构(以便其他用户无法访问隐藏的选项卡),则vba会失败。是否无法在管理宏中保护/取消保护工作簿?我尝试了ActiveWorkbook.Unprotect
,ActiveWorkbook.Protect
和ActiveWorkbook.ProtectStructure
的各种组合无效 - 无论是在管理宏还是在WorkbookOpen中。我最常遇到的错误消息是“无法分配给只读属性”,即使在我的代码顶部有ActiveWorkbook.Unprotect
之后也是如此。有谁知道如何解决这个问题?我真的不想让所有标签打开,在管理工作表本身上用第二个密码取消隐藏 - 笨拙!
答案 0 :(得分:0)
不是保护整个工作簿,而是将要隐藏的工作表的Visible
属性设置为xlSheetVeryHidden
- 您可以在VBA编辑器的属性窗口中手动执行此操作。现在这些工作表不会显示在Unhide…
对话框中。您的宏可以将仅管理员工作表的可见性从xlSheetVeryHidden
交换为xlSheetVisible
并返回。
本身并不能保护您的工作簿免受知道如何访问VBA编辑器和属性的用户的影响,但是如果您需要这样做,那么快速的网络搜索似乎有很多答案 - 它可能取决于在您的Excel版本上。