【发布时间】:2017-11-09 10:29:54
【问题描述】:
我已经设法抑制“另存为”方法转到文件 > 另存为,如下所示:
Private Sub Workbook_BeforeSave _
(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then Cancel = True
End Sub
我已将文件设为只读,因此“保存”选项会阻止它们以这种方式保存。
但是,如果他们对工作簿的工作表进行更改,则会提示他们保存更改。点击“是”会弹出“另存为”提示。
我的最终目标是阻止他们保存在此工作表上或能够在任何地方保存工作表的副本。我希望他们能够打开工作表,使用它的功能/特性,就是这样。
VBA 受密码保护。
他们将通过快捷方式访问它,文件不在他们的机器上(我知道已创建本地副本,这是我的下一个挑战)文件本身将在由 Active Directory 控制的服务器上。
【问题讨论】:
-
您的整个工作都是基于它们在打开文件时激活 VBA / 宏这一事实。如果他们不执行/允许您的代码运行,那么您的程序将不会执行或“保护”您的文件。此外,您无法阻止他们使用其他应用程序(如 LibreOffice)打开文件,这将绕过您可能已实施的宏和其他一些安全机制(如 VBA 密码保护)。而这些只是一些缺点。简而言之:如果你问我,我会说你使用 Excel 时没有真正的安全性。
-
我最初将在用户计算机上设置 Excel 和此连接,因此我将自己启用它。我知道 Excel 不是万无一失的,但越难或越难,我就可以让它变得更好。如果有人真的想得到它,那么他们会得到它,但这张表的用户通常不会精通 IT。