分享

Excel VBA 7.61听说你会用VBA批量删除工作表?但重要数据不是你想删就能删的

 Excel和VBA 2021-04-18

一起学习,一起进步~~

昨天我们学习了一下批量删除空白工作表的方法,那么自然工作表的删除就没有任何的问题了,不过有时候当我们通过VBA批量删除工作表数据的时候,可能会碰到一个问题,一时兴起把一些主要的工作表数据删除了,这就非常的尴尬了,我们都知道VBA操作的不可逆,所以我们在进行批量工作表删除的时候,要留意一些关键工作表数据的保护,so,如何实现呢?

场景说明

这是我们之前使用过的工作表,我们这里有很多个工作表

当我们完成了数据的汇总和整理之后,我们现在只需要保留总表这个工作表就可以了, 所以我们按照之前的VBA代码打算将除去总表以外的其他的所有的工作表都删除,但是我们注意到其中有一个标红的工作表,是考核标准,这个工作表数据是不能删除的,因为后续的考核都是要用这个表的,但是如果用VBA代码去删除工作表就会把这个表一起删除,因为他的名字不等于“总表”那么怎么办呢?

代码区

其实今天的方法比较的直接,并不算是一个最好的方法,但是我们的初衷就是要实现效果,得到目的就可以了。 来看看代码

Private Sub Worksheet_BeforeDelete()ActiveWorkbook.Protect "床前明月光"MsgBox "此工作表禁止删除"On Error Resume NextExit SubEnd Sub

是的,我们今天的代码是写在考核标准这个工作表的里面的,并不是写在模块中的

这样的目的是什么呢?就是在执行删除操作之前,执行一个操作,制造一点小麻烦,让删除程序没有办法顺利的进行。我们来看看效果

当程序开始的时候,其他的 工作表都已经被删除完毕了,但是当删除到考核标准这个工作表之后,我们发现他并没有被删除,反而弹出了一个窗口,提示我们这个工作表禁止删除

点下确定呢?

不好意思,工作表被保护了,这个工作表你应该是删除不了了。所以只能结束程序了,重新调试删除的程序代码了。 

这样就间接了实现了对工作表的保护,禁止对方随意的删除你的工作表。 

代码分析

今天我们的方法是强制在工作表被删除之前,将整个工作薄进行密码保护起来,这样就禁止了对方进一步删除我们的工作表,破坏了VBA删除代码的顺利进行,从而从侧面实现了禁止删除工作表的效果。 

我们来今天的代码

其实知识点也是很简单,工作表的保护

ActiveWorkbook.Protect "****"'*代表你要输入的密码

实际上也就是通过给工作薄上锁的方式,来阻止VBA代码肆意的删除工作表,从而达到保护工作表的效果和目的

虽然实现了效果,但是感觉方法并不是最优的,不知道小伙伴们还有没有更好的办法呢?

============================

本节课的案例源码已经上传,需要的小伙伴后台私信“7-61-1”,希望大家多支持~~,多多关注 ~ ~

好了,明晚21:00,准时再见!


因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多