我有一个包含大工作表的 Excel 文件,经常更新和提交。
为了让接收文件的人无法看到计算细节和原始数据,相当多的行和列被隐藏,并且该工作表受密码保护。
但是,用户仍然可以通过将内容复制并粘贴到另一张表格中,或使用如下公式来阅读隐藏部分
='受保护的工作表'!J9
其中 J9 是隐藏单元格。
我知道每堵墙都有突破的办法,但是,有没有办法保护隐藏的 Excel 单元格的内容不被“普通”用户(轻易)读取?
答案1
将计算辅助单元格转移到完全不同的工作表。然后隐藏该工作表,或使用 VBA 使其“完全隐藏”,这意味着无法通过用户界面取消隐藏。
这是 John Walkenbach 文章中的一段引文http://j-walk.com/ss/excel/usertips/tip036.htm
- 按 Alt-F11 显示 Visual Basic 编辑器
- 在项目窗口中,双击 Microsoft Excel 对象并选择要隐藏的工作表。
- 按 F4 显示属性框
- 将工作表的 Visible 属性设置为 xlSheetVeryHidden。
要取消隐藏工作表,请重复这些步骤,但将 Visible 属性设置为 xlSheetVisible。
使用密码保护 VBA 项目,这样即使具有一些 VBA 技能的用户也无法轻易访问它。
请注意,没有哪种 Excel 密码保护是绝对安全的。工作表密码需要 2 秒钟才能解除。根据 Excel 版本,如果恶意攻击足够多,工作簿密码和 VBA 密码可以稍微费点力气就能被破解。
答案2
我尝试采用的一般方法是隐藏人们不需要看到的内容,保护我不想让他们更改的单元格,然后就这样了。如果有人真的想看到隐藏的内容,几乎没有什么不能解决的,所以如果你真的想保密的话,Excel 并不是答案。
话虽如此,以下是一些可以阻止人们了解细节的例子:
- 将这些单元格的属性设置为隐藏(设置单元格格式...|保护|隐藏,在保护单元格时会隐藏生成单元格值的公式;并且
- 保护工作表时,请关闭“选择锁定单元格”复选框,这样可以阻止有人在取消隐藏单元格并尝试在公式中使用它时选择该单元格。这不会阻止有人手动输入单元格引用,但会使操作更加麻烦。