Excel VBA 5.31 禁止添加新的工作表 禁止修改工作表名称
禁止添加新的工作表 禁止修改工作表名称
点击上方“Excel和VBA”,选择“置顶公众号”
致力于原创分享Excel的相关知识,源码,源文件打包提供
一起学习,一起进步~~
关于工作簿的保护,小伙伴们日常的需求还是很大的,最近也是有一些小伙伴们提供了一些日常工作中的场景
说到底,还是针对自己的工作薄模板的保护,因为很多时候,我们都是将自己的数据写好,套用公式,然后形成各种数据表的样式,但是当你将这些数据分发给其他同事,尤其是分发给其他同事填写数据的时候,往往会出现很多让你生气的事情
比方说随意的篡改单元格数据
随意的新增工作表,或者更改工作表的名称,让你原来的公式和数据全部乱套了,欲哭无泪
那么今天呢
我们就针对这两个问题来说下如何限制的
场景说明
这是我们今天的工作簿,现在工作簿中有且仅有一个工作表,并且已经设置了工作表的名称,我们来实现上面两个效果
1.禁止新增工作表
2.禁止更改当前工作表名称
代码区
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.DisplayAlerts=False
ActiveSheet.Delete
Application.DisplayAlerts=true
End Sub
直接来看看效果
效果非常的直接,不管你尝试努力去创建新工作表多少次,最终的结果都是。。。没有任何效果。为什么呢?
ActiveSheet.Delete
你一创建,就被删除了,根本没有看见的机会
好,继续下一个效果,禁止修改工作表的
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Me.Name <> "我就是我,不许改名字" Then
Me.Name = "我就是我,不许改名字"
End If
End Sub
代码分析
代码都实现了我们的效果,其实这两个代码,大家都应该猜到了,是属于工作表的事件功能
所以他们的代码应该写在哪里,就非常的重要了。
禁止新增工作表,应该是工作簿的事件功能,那么自然而然应该写在
而第二个,明显就是工作表的事件,这里大家可能并不好理解,为什么是选择出现了变化呢?
因为excel的工作表事件中,并没有修改名称的 ,所以这里我们要取一个巧
当工作表的选择发生变化的时候,我们去判断,这个工作表的名称是否是我们预设的,如果不是,则直接强制改回来
因为你更改了工作表名称之后,你肯定要操作的,所以就是这样一个逆向的思维
所以代码要写在对应的工作表里面。
好了,明晚21:00,准时再见!
因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。