前景提要(文末提供源码下载)

学习关于工作表的一些简单的删除操作之后呢,我们现在来学习 关于工作表的保护,简单的说就是工作表的加密,禁止对方随意篡改我们的数据,导致最终数据不符或者造成关键数据的丢失。

场景说明

说起工作表的保护,大家肯定会想到我直接点击菜单栏的工作表保护就可以了

个别工作表保护通过这样的方式来实现自然是最高效的,但是如果工作表的数量比较多,这样的操作就比较的麻烦了。有10个工作表都要来回点击10次,输入20次的密码,因为密码需要输入两次,所以是20次,这明显不符合我们的高效理念,所以来试下VBA高效加密。

代码区

Sub DeleteWs() Dim sth As Worksheet, s As String, str$ s = Application.InputBox("请输入工作表密码", "加密密码的确定", , , , , , 3) For Each sth In Worksheets If sth.ProtectContents = False And sth.ProtectDrawingObjects = False Then sth.Protect "" & s & "" Else str = str & sth.Name End If Next sth If Len(str) > 0 Then MsgBox str & "无法加密,其他工作表已经全部加密,请牢记你的密码!" Else MsgBox "工作表已经全部加密,请牢记你的密码!" End If End Sub

来看看今天的效果,我们最终目的是将所有的工作表进行加密,如果其中部分工作表已经有了加密,那就跳过,并且最终告诉我有哪些工作表没有加密

看看代码执行的过程,首先我们为了 保证代码的通用性以及安全性,我们不直接明文展示我们的密码,而是通过输入窗体的形式来进行交互输入

假设我们的密码是上面这样子的,实际操作中可以根据自己的需要输入任何自己想要的密码,点击确定

最终我们会得到这样的一个提示,总表因为在之前已经被加密过了,所以总表无法进行二次加密,所以直接跳过了,但是其他的工作表都已经用我们上面的工作表成功的的加密完成了,我们来看看效果

总表用我们的密码是完全没有办法解锁的,因为他在代码执行之前就已经被加密过了,故而不能进行二次加密,除非先解密

其他的工作表则是可以通过我们刚刚输入的“123哈哈“来进行解密的,说明我们的加密成功了

代码分析

来看看今天的代码。今天的代码也比较的简单,两个知识点

1.如何判断当前工作表是否已经被加密

If sth.ProtectContents = False And sth.ProtectDrawingObjects = False Then

这句代码就是判断工作表是否已经被加密的,如果工作表已经被加密了,你还要强行二次加密的话,虽然系统不会报错,程序也会正常执行,但是实际上,你并没有加密成功,所以在这里要增加一个判断,这样也可以清楚的告诉自己,工作表那些成功加密,哪些没有成功加密

2.工作表加密的方法

sth.protect "*****"'*代表的就是你需要加密的工作表密码

这个就非常的简单了。相较于手工操作需要输入两次的密码,这样的操作明显简单了很多

批量工作表的加密保护就这么的简单,快去给自己的工作表上把锁吧

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

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

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