如何防止Excel工作表名称被修改
在Excel工作表标签上双击可以修改名称,如果其他工作簿中公式使用了对于此工作表的外部引用,那么工作表名称变化后,这些外部引用经失效,在VBA代码中通过工作表名称引用对象也将出错。利用VBA对象事件代码可以一定程度上的实现防止Excel工作表名称被修改。
假设实例文件中的工作表名称为“DEMO”,在该工作表模块中增加如下事件代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Me.Name <> "DEMO" Then Me.Name = "DEMO"
End Sub
Private Sub Worksheet_Deactivate()If Me.Name <> "DEMO" Then Me.Name = "DEMO"
End Sub
【代码解析】
第1~3行代码为工作表的SelectionChange
事件代码,用户在工作表中选中单元格或者区域时,将激活此事件执行相关代码。
第2行代码判断该工作表的名称是否被修改,如果已经被修改,将自动恢复为“DEMO”,其中的Me
用于指代代码模块所在对象,此处就是名称为“DEMO”的工作表。
如果用户修改了工作表名称之后,直接切换工作表,那么并不会激活SelectionChange
事件,针对此场景需要在Deactivate
事件中添加同样的代码用于恢复工作表名称。
使用了两个工作表事件是否将完美解决这个问题呢?其实并不是,如果用户修改了工作表名称之后,直接保存并关闭工作簿文件,那么该工作表的名称应不再是“DEMO”。为了应对此场景,需要使用工作簿的事件代码。
Private Sub Workbook_BeforeClose(Cancel As Boolean)If shtDEMO.Name <> "DEMO" ThenshtDEMO.Name = "DEMO"ThisWorkbook.SaveEnd If
End Sub
【代码解析】
工作簿事件代码保存在ThisWorkbook
模块中, 就无法像上面两个工作表事件代码一样直接使用Me.Name
获取工作表名称。此处可以使用工作表的CodeName
作为工作表对象的标识,此例中名称为“DEMO”的工作表的CodeName
为shtDEMO
,如下图所示。
第3行代码恢复工作表名称。
第4行代码保存文件。
本文所讲解的方法只是“基本上”实现了防止Excel工作表名称被修改,并不能确保时候所有场景。如果希望完美的实现禁止工作表改名,应该使用“保护工作簿”的功能,工作表的重命名功能被禁用,但是需要注意的是工作表相关一些其他操作也同时被禁用,如下图所示。
如何防止Excel工作表名称被修改相关推荐
- vba 修改access表的链接地址_神奇的VBA编程:禁止修改Excel工作表名称
职场中经常需要将做好的Excel表格/模板发给他人或者存放在公共路径上共享使用,此时需要禁止别人更改已经设定好的工作表名称.或者某些工作簿中有公式使用了对某些工作表的外部引用,如果工作表名称发生变化, ...
- 如何禁止修改Excel工作表名称
经常会有网友提问:如何实现禁止修改Excel工作表名称,这个暂时没有完美解决方案,但是如下变通解决方法基本上可以满足需求. 示例文件中有两个工作表,名称为Summary和Sheet2,假设禁止修改第一 ...
- Excel实用技巧-如何批量提取excel工作表名称
Excel实用技巧-如何批量提取excel工作表名称 1. 打开Excel文件,点击"公式"栏,进而点击"定义管理器" 2. 在弹出的对话框中,点击新增按钮, ...
- 修改Excel工作表名称(CodeName)并不简单
在Excel中修改工作表名称有什么可讲的,在工作表标签上点右键,选择重命名就可以了,恭喜你答对了一半. 另一半呢?除了这个名称外,工作表还有另外一个名称--CodeName,想修改这个名字就没那么简单 ...
- python获取excel工作表名称
你可以使用 Python 的 openpyxl 库来获取 Excel 的工作表名称.具体的方法是: 安装 openpyxl 库:在命令行中输入 pip install openpyxl 在 Pytho ...
- 获取excel名称java_使用Apache POI获取大型Excel文件的Excel工作表名称
小编典典 为了显示@Gagravarr的评论可能意味着什么: 该XSSFReader包含方法XSSFReader.getSheetsData其中"返回一个迭代器,这将让你在把所有的不同的表, ...
- Excel酷炫技能,批量修改工作表名称,让你的工作事半功倍
企事业单位部门众多,人员也众多.使用Microsoft Excel汇集资料任务繁重,收集到的Excel工作表资料名称也各不相同,如果不将其整理会对今后的工作造成不必要的麻烦.对Excel工作表名称单个 ...
- Excel如何批量修改工作表名称
今天跟大家分享一下Excel如何批量修改工作表名称 1.下图工作簿中含有多个工作表,现在我们想要将工作表名称批量修改为1月-9月. 2.首先我们现在表格空白区域录入1月-9月 3.点击下图选项(Exc ...
- Excel单元格中引用当前工作表名称
有多份Excel表格表头标题都为"××学校第1次拉练考试××班成绩表",由于工作表结构都是一样的,所以我每次都是复制工作表然后编辑修改表中的数据.但经常是表中数据修改了,表头标题中 ...
最新文章
- 帝豪gs车机系统wince_吉利新款帝豪GS,内饰升级大双屏,还不涨价,7万多就能买...
- 设计模式04_抽象工厂模式
- BIO bi_sector submit_bio make_request_fn
- 【C++】39. std::ofstream把程序中的中的变量值存储到文件中
- ACM入门之【高精度】
- SAP Spartacus CurrentProductService.getProduct方法的实现原理
- 基础算法 —— 高精度计算 —— 高精度减法
- 你还没听过 CynosDB 吗?不来这场数据库技术沙龙就要 OUT 了!
- 遇到相同流程时,(在流程比较复杂时)「【充分利用】 在【 之前的 作业过程中 做成的(留下的) 资源】」 ~
- PX4无人机配置4G空地多机组网系统
- 手把手教你SpringBoot+MyBatis+Shiro 搭建项目框架
- html修改鼠标手势,css设置鼠标手势的方法
- 《仿人机器人原理与实战》一1.2 反射弧与仿人机器人设计
- Oracle转换Postgres
- 分段插值法 | 分段线性插值 + 分段抛物插值
- ico 图标 生成 工具 网站
- 云控系统都有那些功能?
- Mac查看端口号占用
- 常用的但是容易忘记的css样式..........持续更新,主要自用
- python七夕表白代码(转载)