Excel如何让表格不被修改(Excel表格的名称怎么改不了)
No.1
有没有想过,当你有一个Excel工作表,需要它的名称固定,不希望随便更改。
这个场景是十分有必要的,因为在一些编程过程中,会预设一些固定名称的表来对编程过程进行使用。
而这些表名一旦被更改,程序就进入了一个无法运行的状态。
如此情况之下,固定表名就显得十分必要了。
下面就介绍一下,如何让表名始终固定为一个名称不变的处理方法。
No.2
全部代码如下图所示:
这里用到了一些事件,包括工作表Worksheet和工作薄WorkBook中的事件,具体是哪些事件下面详细介绍。
其中,还用到了一个模块编码。
分别说明
第一步:定义常量
如上图为模块的代码,插入一个常用模块,将如下代码写入模块中。
其含义为,定义一个常量Sname,也就是固定的表名,值可以是任意字符串,字符串要符合Excel工作表名称规则。
第二步:WorkBook事件
将上图代码写入WorkBook_BeforeClose事件当中。
意义为:当工作薄关闭前触发事件,执行代码。
代码内容为判断Sheet(1)的名称是否为,模块中定义的名称,如果不是,就更改为模块定义的工作表名称,保存工作表,然后才退出工作薄。
第三步:WorkSheet事件
工作表事件涉及两个:
- Worksheet_Deactivate
- Worksheet_SelectionChange
两个事件中的代码相同,都是对工作表名称进行判断和修改。
第1个事件Deactivate是当工作表失去焦点时触发,也就是当离开这个工作表或选择其它工作表时触发的事件。
第2个事件SelectionChange,很明显是当工作表单元格改变选择的时候触发,也就是当你单击另一个单元格的时候触发。
No.3
只需要将代码写到指定的位置,那么防止修改工作表名称的功能就实现了。
本节内容当中,代码的应用很少,重点在于对不同的事件要有清晰的认识。
要分清工作薄和工作表分别指什么意义。
还有一点对模块的了解。
为什么要把常量写到模块里而不是写到工作表或工作薄代码段里?
其实,写进工作表代码段也可以使用,但是出于对代码的精简,这样写更好一点。
---END---
欢迎关注、收藏。