No.1

有没有想过,当你有一个Excel工作表,需要它的名称固定,不希望随便更改。

这个场景是十分有必要的,因为在一些编程过程中,会预设一些固定名称的表来对编程过程进行使用。

而这些表名一旦被更改,程序就进入了一个无法运行的状态。

如此情况之下,固定表名就显得十分必要了。

下面就介绍一下,如何让表名始终固定为一个名称不变的处理方法。

No.2

全部代码如下图所示:

这里用到了一些事件,包括工作表Worksheet和工作薄WorkBook中的事件,具体是哪些事件下面详细介绍。

其中,还用到了一个模块编码。

分别说明

第一步:定义常量

如上图为模块的代码,插入一个常用模块,将如下代码写入模块中。

其含义为,定义一个常量Sname,也就是固定的表名,值可以是任意字符串,字符串要符合Excel工作表名称规则。

第二步:WorkBook事件

将上图代码写入WorkBook_BeforeClose事件当中。

意义为:当工作薄关闭前触发事件,执行代码。

代码内容为判断Sheet(1)的名称是否为,模块中定义的名称,如果不是,就更改为模块定义的工作表名称,保存工作表,然后才退出工作薄。

第三步:WorkSheet事件

工作表事件涉及两个:

  1. Worksheet_Deactivate
  2. Worksheet_SelectionChange

两个事件中的代码相同,都是对工作表名称进行判断和修改。

第1个事件Deactivate是当工作表失去焦点时触发,也就是当离开这个工作表或选择其它工作表时触发的事件。

第2个事件SelectionChange,很明显是当工作表单元格改变选择的时候触发,也就是当你单击另一个单元格的时候触发。

No.3

只需要将代码写到指定的位置,那么防止修改工作表名称的功能就实现了。

本节内容当中,代码的应用很少,重点在于对不同的事件要有清晰的认识。

要分清工作薄和工作表分别指什么意义。

还有一点对模块的了解。

为什么要把常量写到模块里而不是写到工作表或工作薄代码段里?

其实,写进工作表代码段也可以使用,但是出于对代码的精简,这样写更好一点。

---END---

欢迎关注、收藏。