Jack创建了工作表,然后将其转发给组中的其他人,以便他们可以输入信息,然后将工作表退还给他。他保护工作表,但被使用复制和粘贴来完全重新创建工作表的用户焚烧了几次。检查所有内容以确保返回的工作表是原始文件非常耗时,因此Jack正在寻找一种删除复制和粘贴工作表功能的方法。

从理论上讲,禁用复制和粘贴很容易做到。您需要做的就是在ThisWorkbook对象中使用一个短宏,如下所示:

Private Sub Worksheet_Deactivate()

If ActiveSheet.ProtectContents = True Then         Application.CutCopyMode = False     End If End Sub

每当有人通过选择另一个工作表或另一个应用程序来停用工作表时,使用此宏都会清除剪贴板。

当然,这仅提供最基本的保护。确定的用户仍然可以通过使用鼠标右键单击工作表名称,然后单击“移动”或“复制”来复制工作表,或者他们可以在启动工作簿时禁用宏,从而禁用剪贴板清除例程。

也许更好的方法是查看组织中的业务开展方式。如果您不希望人们复制工作表,请提前告诉他们,并确保他们知道您将不接受任何重复项。

有非常简单的方法来检查您获得的内容是否重复。以下是其中一些:

  • 将公式放在单元格中,然后在保护过程中隐藏单元格内容。如果您找回工作表并取消保护工作表,并且公式不存在,则该工作表为副本。

  • 通过使用密码保护工作表。如果以后您无法使用相同的密码取消保护工作表,则可以知道其他人已复制工作表并使用了自己的密码。

  • 让您的工作表使用隐藏的公式来访问隐藏的工作表上的数据。如果用户复制工作表,则隐藏的工作表不会复制到新工作簿中,因此公式不会给出正确的答案。

  • 在工作簿中插入一个宏模块,然后保护该模块。

该模块不需要执行任何操作,但是如果您返回的工作簿没有受保护的模块,或者是简单的XLSX文件,则它是副本。

  • 在工作簿的自定义属性区域中添加一些内容。如果自定义属性不在工作簿中,则您会回来,很有可能该工作簿不是原始工作簿。

另一尝试是在密码保护工作表之前将单元格保护属性设置为“隐藏”。用户可以看到单元格中结果的结果,但看不到公式。如果他们将内容复制并粘贴到其他位置,则公式将不会被转移,只会转移结果。这很容易在返回的工作簿中发现。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12653)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: