如何保护工作表名称不是整个工作表?

我需要通过阻止来保护表单名称

  • 对表格名称的任何改变,或者
  • 工作表被删除。

必须使用“ Protect Sheet或“ Protect Workbook选项来保护整个Protect Workbook Protect Sheet

有没有办法用VBA做到这一点?

  1. 右键单击您希望保护的工作表选项卡
  2. 查看代码
  3. 复制并粘贴到下面的代码中

此代码禁用表单上的删除控制(但不能右键单击单元格)菜单。 当表单被禁用时,控制器被启用

当工作表被禁用时,代码还将命名工作表“NameOfSheet”。 这是一个解决方法,以防止工作表重命名

 Private Sub Worksheet_Activate() Application.CommandBars.FindControl(ID:=847).Enabled = False End Sub Private Sub Worksheet_Deactivate() Application.CommandBars.FindControl(ID:=847).Enabled = True Me.Name = "NameOfSheet" End Sub 

保护sheet1

我不认为你可以。 你可以做什么,你可以制作一个非常隐藏的工作表(只能从VBA访问),如果删除了工作表,你可以复制它并使副本可见。

这个方法会起作用吗?

  1. select表格中的所有单元格,然后用“locking单元格”locking所有单元格(挂锁的黄色背景变成白色)。
  2. 在(固定或命名)单元格中写入工作表名称,然后locking该单元格(“locking单元格”,挂锁背景变成黄色)。
  3. 然后保护工作簿,但允许每个操作,除了第一个“selectlocking的单元格”。

    除了用sheetnameselect单元格(和删除行/列)之外,用户可以做所有事情。

  4. 现在编写一个VBA来比较实际的图表名称与受保护的命名单元格(或固定引用,例如A1)中的数据。

  5. 每次更改(可能太多)或至less在工作簿closures时运行此脚本。
  6. 只要表单名称始终在同一个单元格中(例如A1),就可以遍历所有表单,将其名称与单元格A1中的数据进行比较,并根据需要更正表单名称。