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

Excel 如何防止用户删除工作表,但保持所有其他工作表处于打开状态,excel,excel-2007,vba,Excel,Excel 2007,Vba,我开发了一个Excel应用程序,用户可以在其中输入自定义类别。我使用自定义功能区中的按钮让用户调用并隐藏此数据输入工作表 现在我意识到用户可能会意外删除这些工作表。如何禁用此工作表的“删除”命令,同时保持所有其他命令处于打开状态 我一直在网上搜索,但在这个问题上却一无所获 这是Excel 2007的 谢谢保护他们 工具>保护>保护工作表。 添加密码并在工作表中选择用户应执行的操作 您也可以使用VBA执行同样的操作。检查以下各项 更新了板材级保护代码 您可以在工作表中输入以下代码,以便管理任何恶意

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

现在我意识到用户可能会意外删除这些工作表。如何禁用此工作表的“删除”命令,同时保持所有其他命令处于打开状态

我一直在网上搜索,但在这个问题上却一无所获

这是Excel 2007的

谢谢

保护他们

工具>保护>保护工作表。

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

您也可以使用
VBA
执行同样的操作。检查以下各项

更新了板材级保护代码

您可以在工作表中输入以下代码,以便管理任何恶意行为;)

但是你看,当你有一本100页的书,如果你想保护50页。 然后,您必须将所有工作表索引保存到一个非常隐藏的工作表中。在模块级VBA代码中使用该列表触发保护。因为不是每次你都会有提升顺序的床单。如果工作表索引按顺序排列,只需迭代即可


如果您还想要工作簿级别的代码,请告诉我。

不要保护工作表。。。您必须保护工作簿“for structure”(可在2007/2010的“review”选项卡中找到)@bonCodigo我已检查了工作簿保护设置中可供我使用的选项,但这并没有为我提供仅保护工作表并保留所有其他选项的选项。例如,它不允许用户在数据表中输入更多行或删除它们。@MikeD工作簿“structure”命令不在Excel 2007中。它出现在Excel 2010中。事实上,如果不是这样,我会用它的@excelnova您可以编写带有工作表激活事件的VBA,也可以编写VBA来保护所需的工作表,使其他所有内容保持打开状态。很好,谢谢;)让我给你们发一个测试样本,以确保只有x,y,z表不能被删除,其余的是开放的,用户的任何行动。
Private Sub Worksheet_Activate()
    ThisWorkbook.Protect Password:="Password", Structure:=True
End Sub

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