Excel保护和取消保护工作簿VBA

时间:2015-07-14 08:37:16

标签: excel vba excel-vba

我有一个工作簿,其中包含几个(查找)选项卡,我不希望任何用户能够取消隐藏。但是,有一个选项卡包含我希望管理员用户能够看到的管理员信息。我有一个按钮和宏,在取消隐藏此选项卡之前会提示输入管理员密码,但如果我保护工作簿结构(以便其他用户无法访问隐藏的选项卡),则vba会失败。是否无法在管理宏中保护/取消保护工作簿?我尝试了ActiveWorkbook.UnprotectActiveWorkbook.ProtectActiveWorkbook.ProtectStructure的各种组合无效 - 无论是在管理宏还是在WorkbookOpen中。我最常遇到的错误消息是“无法分配给只读属性”,即使在我的代码顶部有ActiveWorkbook.Unprotect之后也是如此。有谁知道如何解决这个问题?我真的不想让所有标签打开,在管理工作表本身上用第二个密码取消隐藏 - 笨拙!

1 个答案:

答案 0 :(得分:0)

不是保护整个工作簿,而是将要隐藏的工作表的Visible属性设置为xlSheetVeryHidden - 您可以在VBA编辑器的属性窗口中手动执行此操作。现在这些工作表不会显示在Unhide…对话框中。您的宏可以将仅管理员工作表的可见性从xlSheetVeryHidden交换为xlSheetVisible并返回。

本身并不能保护您的工作簿免受知道如何访问VBA编辑器和属性的用户的影响,但是如果您需要这样做,那么快速的网络搜索似乎有很多答案 - 它可能取决于在您的Excel版本上。