如何保护工作表名称不是整个工作表?
我需要通过阻止来保护表单名称
- 对表格名称的任何改变,或者
- 工作表被删除。
必须使用“ Protect Sheet
或“ Protect Workbook
选项来保护整个Protect Workbook
Protect Sheet
。
有没有办法用VBA做到这一点?
- 右键单击您希望保护的工作表选项卡
- 查看代码
- 复制并粘贴到下面的代码中
此代码禁用表单上的删除控制(但不能右键单击单元格)菜单。 当表单被禁用时,控制器被启用
当工作表被禁用时,代码还将命名工作表“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
我不认为你可以。 你可以做什么,你可以制作一个非常隐藏的工作表(只能从VBA访问),如果删除了工作表,你可以复制它并使副本可见。
这个方法会起作用吗?
- select表格中的所有单元格,然后用“locking单元格”locking所有单元格(挂锁的黄色背景变成白色)。
- 在(固定或命名)单元格中写入工作表名称,然后locking该单元格(“locking单元格”,挂锁背景变成黄色)。
-
然后保护工作簿,但允许每个操作,除了第一个“selectlocking的单元格”。
除了用sheetnameselect单元格(和删除行/列)之外,用户可以做所有事情。
-
现在编写一个VBA来比较实际的图表名称与受保护的命名单元格(或固定引用,例如A1)中的数据。
- 每次更改(可能太多)或至less在工作簿closures时运行此脚本。
- 只要表单名称始终在同一个单元格中(例如A1),就可以遍历所有表单,将其名称与单元格A1中的数据进行比较,并根据需要更正表单名称。