Excel VBA 5.31  禁止添加新的工作表 禁止修改工作表名称

Excel VBA 5.31  禁止添加新的工作表 禁止修改工作表名称
2021年04月24日 11:00 晓雯子16

前景提要

关于工作簿的保护,小伙伴们日常的需求还是很大的,最近也是有一些小伙伴们提供了一些日常工作中的场景

说到底,还是针对自己的工作薄模板的保护,因为很多时候,我们都是将自己的数据写好,套用公式,然后形成各种数据表的样式,但是当你将这些数据分发给其他同事,尤其是分发给其他同事填写数据的时候,往往会出现很多让你生气的事情

比方说随意的篡改单元格数据

随意的新增工作表,或者更改工作表的名称,让你原来的公式和数据全部乱套了,欲哭无泪

那么今天呢

我们就针对这两个问题来说下如何限制的

场景说明

这是我们今天的工作簿,现在工作簿中有且仅有一个工作表,并且已经设置了工作表的名称,我们来实现上面两个效果

1.禁止新增工作表

2.禁止更改当前工作表名称

代码区

Private Sub Workbook_NewSheet(ByVal Sh As Object)Application.DisplayAlerts=FalseActiveSheet.Delete Application.DisplayAlerts=trueEnd Sub

直接来看看效果

效果非常的直接,不管你尝试努力去创建新工作表多少次,最终的结果都是。。。没有任何效果。为什么呢?

ActiveSheet.Delete

你一创建,就被删除了,根本没有看见的机会

好,继续下一个效果,禁止修改工作表的

Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Me.Name "我就是我,不许改名字" Then Me.Name = "我就是我,不许改名字"End If

End Sub

代码解析

代码都实现了我们的效果,其实这两个代码,大家都应该猜到了,是属于工作表的事件功能

所以他们的代码应该写在哪里,就非常的重要了。

禁止新增工作表,应该是工作簿的事件功能,那么自然而然应该写在

而第二个,明显就是工作表的事件,这里大家可能并不好理解,为什么是选择出现了变化呢?

因为excel的工作表事件中,并没有修改名称的,所以这里我们要取一个巧

当工作表的选择发生变化的时候,我们去判断,这个工作表的名称是否是我们预设的,如果不是,则直接强制改回来

因为你更改了工作表名称之后,你肯定要操作的,所以就是这样一个逆向的思维

所以代码要写在对应的工作表里面。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部