防止他人重新创建受保护的工作表(Microsoft Excel)
Jack创建工作表,然后将其转发给小组中的其他人,以便他们可以输入信息,然后将工作表退还给他。他保护工作表,但被使用复制和粘贴来完全重新创建工作表的用户焚烧了几次。检查所有内容以确保返回的工作表是原始文件非常耗时,因此Jack正在寻找一种删除复制和粘贴工作表功能的方法。
从理论上讲,禁用复制和粘贴很容易做到。您需要做的就是在ThisWorkbook对象中使用一个短宏,如下所示:
Private Sub Worksheet_Deactivate() If ActiveSheet.ProtectContents = True Then Application.CutCopyMode = False End If End Sub
每当有人通过选择另一个工作表或另一个应用程序来停用工作表时,使用此宏都会清除剪贴板。
当然,这仅提供最基本的保护。确定的用户仍可以使用“编辑” |“复制”来复制工作表。移动或复制工作表,否则它们可能会在启动工作簿时禁用宏,从而禁用剪贴板清除例程。
也许更好的方法是查看组织中的业务开展方式。如果您不希望人们复制工作表,请提前告诉他们,并确保他们知道您将不接受任何重复项。
有非常简单的方法来检查您获得的内容是否重复。以下是其中一些:
-
将公式放在单元格中,然后在保护过程中隐藏单元格内容。如果找回工作表,请取消保护工作表,并且公式不存在,则该工作表为副本。
-
通过使用密码保护工作表。如果以后您无法使用相同的密码取消保护工作表,则可以知道其他人已复制工作表并使用了自己的密码。
-
让您的工作表使用隐藏的公式来访问隐藏的工作表上的数据。如果用户复制了工作表,则隐藏的工作表不会复制到新工作簿中,因此公式不会给出正确的答案。
-
在工作簿中插入一个宏模块,然后保护该模块。该模块不需要执行任何操作,但是如果您返回的工作簿没有受保护的模块,则它是一个副本。
-
在工作簿的自定义属性区域中添加一些内容。如果自定义属性不在工作簿中,则您会得到返回,则很有可能该工作簿不是原始工作簿。
要尝试的另一件事是在密码保护工作表之前将单元格保护属性设置为“隐藏”。用户可以看到单元格中结果的结果,但看不到公式。如果他们将内容复制并粘贴到其他位置,则公式将不会被转移,只会转移结果。这很容易在返回的工作簿中发现。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(3322)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: