2017-06-12 91 views
0

我正在寻找一个VBScript解决方案。VBScript - 防止用户取消隐藏隐藏的工作表

我可以保护工作表:

个ActiveSheet.Protect “密码”

我可以隐藏工作表:

ActiveSheet.Visible =假

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

+0

你必须保护你的工作簿 – krib

+0

只有工作表 - 用户必须看到没有密码的工作簿。但我想看到1工作表,密码保护。 – Mischka

+0

除非在隐藏工作簿后保护工作簿,否则工作表可能会被提取。如果你保护单张纸张,只会改变那里的变化。 – krib

回答

0

隐藏不从Excel UI取消隐藏的可能性:

ActiveSheet.Visible = xlSheetVeryHidden

大概在VBScript中这将是ActiveSheet.Visible = 2

编辑: 加入澄清意见后:

我想实现它的唯一方法就是添加Activate事件代码以便始终隐藏它并保护VBA程序通过密码等。像下面的东西。

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

然后你就可以添加SUB或功能取消隐藏此片通过硬编码密码(密码将以参数传递和对硬编码字符串验证)。在这个Sub中,你可以设置一些全局变量来绕过Activate逻辑。

然后从VBA立即窗口取消隐藏也不起作用。在BeforeSave事件中,您可以隐藏此工作表让其他用户始终隐藏该工作表。

不知道这是否满足您的需求,但我认为这将很难实现更多。

+0

声音很好,灰色出菜单取消隐藏表,是的 问题是,我想取消隐藏它,但只有通过密码。有时我必须看到表的值。 (对不起,我忘了在我的文章) – Mischka

+0

其他问题是,我可以ALT + F11,并设置为0没有密码的可见性:( – Mischka

+0

另一个解决方案来隐藏这个敏感数据可能是将它们存储在单独的工作簿(完全密码​​保护),并打开它们在Excel的后台实例 - 像在这里描述:[打开Excel文件用VBA阅读而不显示](ht TPS://stackoverflow.com/questions/579797/open-excel-file-for-reading-with-vba-without-display) – smartobelix