我正在寻找VBScript解决方案。
我可以保护工作表:
ActiveSheet.Protect"密码"
我可以隐藏工作表:
ActiveSheet.Visible = False
但是用户仍然可以在没有密码的情况下取消隐藏Excel中的工作表。 任何解决方案? 感谢
答案 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
事件中,您可以隐藏此工作表,使其始终为其他用户隐藏。
不确定这是否满足您的需求,但我认为很难实现更多目标。