如何防止用户删除工作表,但保持其他所有打开状态

时间:2012-12-04 11:47:02

标签: excel-vba excel-2007 vba excel

我开发了一个Excel应用程序,其中useres可以输入自定义类别。我让用户通过自定义功能区中的按钮调用并隐藏此数据输入工作表。

现在我意识到用户可能会意外删除这些工作表。如何在保留所有其他打开的情况下禁用此工作表的删除命令?

我一直在网上搜索,但在这方面已经空洞了。

这适用于Excel 2007

由于

1 个答案:

答案 0 :(得分:2)

保护他们。

Tools > Protection > Protect Worksheet.

添加密码并选择用户应在表格中执行的操作。

您也可以使用VBA执行相同操作。请查看以下link

更新了表单级别保护代码

您可以将以下代码放在管理任何恶作剧所需的工作表中;)

Private Sub Worksheet_Activate()
    ThisWorkbook.Protect Password:="Password", Structure:=True
End Sub

Private Sub Worksheet_Deactivate()
    ThisWorkbook.Unprotect Password:="Password"
End Sub

但是你看,当你有一本100张的书,如果你想要保护50张。 然后,您必须将所有工作表索引保存到very hidden sheet。在模块级别VBA代码中列出的用户触发保护。因为不是每次都有升序的床单。如果订单中的工作表索引可以简单地迭代它们。

如果您希望获得工作簿级代码,请告诉我。