如何阻止某人取消隐藏我的 Excel 工作表?

Posted

技术标签:

【中文标题】如何阻止某人取消隐藏我的 Excel 工作表?【英文标题】:How do I stop someone from unhiding my Excel sheets? 【发布时间】:2020-08-25 23:13:14 【问题描述】:

首先,我使用 VBA 编辑器以“非常隐藏”模式隐藏所有工作表,并使用密码保护我的 VBA 项目。但问题是我可以轻松地通过在即时窗口中输入 vba 代码来取消隐藏所有工作表,即:

for each sh in worksheets:sh.visible=true:next sh

那么,哪种方式是没有人可以取消隐藏我的工作表的有效方法?

【问题讨论】:

【参考方案1】:

试用 Excel>审阅>“保护工作簿”(结构)>密码 额外保护您的 VBA 代码。 如果您尝试更改 .visible,Excel 将不允许这样做。

【讨论】:

这不起作用。 'Protect Workbook' 可以在不知道密码的情况下使用 VBA 轻松删除。然后您也可以使用 VBA 取消隐藏您想要的任何内容。 是的。您也可以在 XML 中手动删除密码。但是您不能使用没有“非法”密码删除的即时窗口来取消隐藏工作表(如您的问题中所述)。 不,您实际上可以在即时窗口中只用一行 VBA 轻松删除密码。这可能是由于一个未修复的错误(至少从 Excel 2010 到最新版本)。该错误已报告给 Microsoft,但他们并不关心,因为他们不认为这是安全漏洞。所以我只需要 2 行代码就可以让隐藏的工作表再次可见。目前还没有办法阻止这种情况。【参考方案2】:

简短的回答:你不能。

任何可以编写 VBA 代码的人都可以取消隐藏它们。隐藏工作表不是安全功能!只是为了方便而隐藏一些东西,或者不不小心改变一些东西。

您无法阻止取消隐藏工作表。任何可以打开工作表的人都可以使隐藏工作表中的数据可见。

确保数据安全的唯一方法是不将这些数据分发给任何用户。因此,一种方法可能是将原始数据保存在允许用户发送请求并返回结果的服务器数据库中(但绝不是原始数据)。

【讨论】:

以上是关于如何阻止某人取消隐藏我的 Excel 工作表?的主要内容,如果未能解决你的问题,请参考以下文章

excel中怎样批量取消隐藏工作表

Excel(VBA)取消隐藏所有工作表

VBA如何实现隐藏、显示工作表

如何把excel隐藏的行显示出来

EXCEL VBA 隐藏了工作表,加密的,如何显示或破解

谷歌脚本表隐藏/取消隐藏