Excel 工作簿保护:如何阻止用户篡改工作簿?

Excel 工作簿保护:如何阻止用户篡改工作簿?

我有一个工作簿,里面有很多工作表、宏和计算。我现在需要发送这份工作表(昨天之前没有想到)。我该如何锁定它,以便用户:

  • 无法访问/查看宏?
  • 无法取消隐藏隐藏的工作表?
  • 无法查看代码或添加代码/

我检查过并解锁了那些我想让它们更改的单元格。隐藏了按钮和公式行,然后锁定了它们。隐藏了工作表。我现在用密码保护了工作表。

然而,这会阻止用户访问宏/代码吗?或者取消隐藏工作表?如果没有,我该如何正确/安全/完全地锁定工作簿?

这听起来像是老大哥类型的安全保护,但我只是想确保所有相互链接的单元格不会被意外更改,或者运行我不需要它们运行的​​宏。

非常感谢

迈克尔。

答案1

首先,请注意 Excel 中的大多数保护功能都是不是安全功能。大多数功能很容易被破解或绕过。它们可以很好地阻止意外损坏 - 但无法阻止任何知道自己在做什么并真正想看到您隐藏的信息的人。

以下是一些答案:

初始保护

你已经学完了这些,基本上就是锁上牢房,藏好需要的东西。
然后保护每一个工作表。
然后保护工作簿本身。

非常隐秘的床单

可以将工作表设置为“非常”隐藏,这意味着只能通过 VBA 取消隐藏(它们不会出现在界面的取消隐藏列表中)。这只需通过一行 VBA 即可完成,需要至少运行一次才能触发设置的更改,并且运行后不需要保留在文件中(但这可能有助于记住稍后要取消隐藏哪些工作表):

Sheets("Sheet1").Visible = xlVeryHidden

隐藏的 VBA 代码

为您的项目设置密码。在 VBA 编辑器中,右键单击 中的模块Project Explorer,选择选项卡<ProjectName> Properties并设置密码Protection

请注意,这些可以通过暴力破解打开。

隐藏宏

我假设您的意思是当有人打开窗口时您不希望它们出现在宏列表中Run Macro

为此,请将所需的宏设为 aPrivate Sub或 a Function,这使得它们作为宏不可见,但仍然允许它们被同一模块中的其他代码调用。

我不认为你不能阻止人们跑步可见的宏,并且您不能将隐藏的宏分配给按钮。

答案2

如果你只是希望收件人不会意外更改某些位,Excel 的保护就足够了。但是如果你不希望接收工作簿的人看到机密数据,那么这些保护就无济于事了。

如果您只想显示数据而不显示格式,那么“清除”所有隐藏数据的一个简单方法是将每张工作表导出为 CSV,然后将其重新导入为新的 Excel 工作簿。(第二步严格来说不是必需的,但人们不习惯使用 CSV 文件,因此最好像他们期望的那样发送 Excel 文件。)

如果您希望获得人们无法修改的美观输出,请将表格打印为 PDF 文件并发送。

相关内容