VBScript - 防止用户取消隐藏隐藏的工作表

时间:2017-06-12 12:29:24

标签: excel vbscript

我正在寻找VBScript解决方案。

我可以保护工作表:

ActiveSheet.Protect"密码"

我可以隐藏工作表:

ActiveSheet.Visible = False

但是用户仍然可以在没有密码的情况下取消隐藏Excel中的工作表。 任何解决方案? 感谢

1 个答案:

答案 0 :(得分:0)

隐藏,无法从Excel界面取消隐藏:

ActiveSheet.Visible = xlSheetVeryHidden

可能在VBScript中它将是ActiveSheet.Visible = 2

编辑: 在评论中添加澄清后:

我认为实现它的唯一方法是添加Activate事件代码以始终隐藏它并通过密码保护VBA项目。像下面的东西。

Private Sub Worksheet_Activate()
    ActiveSheet.Visible = xlVeryHidden
End Sub

然后您可以添加Sub或Function以使用硬编码密码取消隐藏此工作表(密码将作为参数传递并根据硬编码字符串进行验证)。在此Sub中,您可以设置一些全局变量来绕过Activate逻辑。

然后从VBA立即窗口取消隐藏也将无效。在BeforeSave事件中,您可以隐藏此工作表,使其始终为其他用户隐藏。

不确定这是否满足您的需求,但我认为很难实现更多目标。