excel杀(会玩失踪的Excel文件)
大家好,今天小编来为大家解答excel杀这个问题,会玩失踪的Excel文件很多人还不知道,现在让我们一起来看看吧!
最近在升级本月14号发布的通讯录管理工具,应朋友们的要求,会增加很多功能,比如:数据导入、数据导出、增加显示一个电话号码、增加保密措施、增加数据联动检索等……更新的工具还在编制中,争取本月内和大家见面。
今天就来和大家分享下文件保密措施中的一个小设置:Excel文件的自杀。
为什么要让文件自杀呢?假设你的重要数据被不法分子得到了,通过他对文件的一些操作,来触发自杀代码的执行,让文件瞬间灰飞烟灭,从而保护我们数据的安全。
SubKillme()\\nWithThisWorkbook'对当前工作薄\\n.Saved=True'保存文件\\n.ChangeFileAccessxlReadOnly'将当前工作簿设为只读。\\nKill.FullName'Kill:从磁盘中删除文件;\\n.Close'关闭Excel\\nEndWith\\nEndSub
当代码执行到【Kill.FullName】这一句的时候,文件就代码所在的文件【上图中的示例文件】就被删除了。
自杀代码在什么时候执行呢?常规是在文件打开的时候,这里就会用到Workbook的Open事件
如果我们直接像上图以所示,将自杀代码直接放在Workbook的Open事件中,当文件打开时,文件就直接不见了。但是,现实中肯定不能这样操作,所以,我们需要设置一些条件,当条件成立时,才执行自杀代码,条件不成立时,就不执行自杀代码。
常用的触发自杀代码的条件有以下几种:
1、以日期做判断:
设定一个日期,当电脑系统日期达到了所设置的日期,就执行自杀代码。
PrivateSubWorkbook_Open()\\nDim限制日期AsDate'申明变量\\n限制日期="2020/4/18"'设置限制使用日期,根据自己需要设置\\n\\nIfVBA.Date>=限制日期Then'判断当前系统日期是否到了限制日期\\nApplication.DisplayAlerts=False'禁止显示提示和警告消息,悄无声息的删除文件\\nCallKillme'执行自杀代码【Killme:第一部分中段代码的过程名称】\\nEndIf\\nEndSub
2、以打开次数判断:
对文件打开次数做记录,当打开次数达到设定的次数时,即执行自杀代码。
我们在Sheet1的【A1】单元格中,记录文件打开的次数,通过工作薄的【BeforeClose】事件判断。
PrivateSubWorkbook_BeforeClose(CancelAsBoolean)\\n'在工作表1的【A1】单元格中记录文件打开次数\\nSheet1.Range("A1")=Sheet1.Range("A1")+1\\nThisWorkbook.Save'保存文件\\nEndSub
此处为什么用【BeforeClose】事件,因为代码会改变单元格中的内容,如果直接用Open事件,打开时,A1单元格会记录一个打开次数,但是如果没有对数据做保存,这个数据累加就无效。
但是文件打开后必定会关闭,在文件关闭前,对打开次数做记录,就对每次的打开操作做记录。
以文件打开次数作为判断条件,执行文件自杀操作,完整代码如下:
3、以密码错误次数判断:
比如我们有一个文件,里面有机密数据,且在文件中设置了登录窗口,每次打开文件的时候都需要验证密码,此时就可以在工作表的某个单元格对密码错误次数错记录,一旦密码错误次数达到了设置的值,即触发文件自杀。
也就是说,如果不知道密码的人拿到文件,是无法打开文件,就算他测试密码,一旦密码错误次数过多,文件就自杀,这样就很好的保护了我们的数据。
以密码输入错误次数判断,完整的判断代码为:
PrivateSubCommandButton1_Click()\\nIfTextBox1.Text=""Then'密码输入框为空时\\nMsgBox"密码不能为空!请输入密码。",vbOKOnly+vbCritical,"警告"\\nElseIfTextBox1.Text<>111Then'密码登录框密码错误时\\nSheet1.Range("A1")=Sheet1.Range("A1")+1'A1单元格次数累加\\nMsgBox"密码错误,请重新输入。",vbOKOnly+vbCritical,"错误"'‘弹出警告\\nTextBox1.Text=""'清空密码登录框,\\n\\n'没出错一次,就判断以下A1单元格的值是否达到次数限制的值\\nIfSheet1.Range("A1")>=10Then\\nApplication.DisplayAlerts=False'禁止显示提示和警告消息,悄无声息的删除文件\\nCallKillme'执行自杀代码【Killme:第一部分中段代码的过程名称】\\nEndIf\\nElse'当密码正确时\\nMsgBox"登录成功!",vbOKOnly+vbInformation,"恭喜"\\nUnload登录\\nEndIf\\nEndSub
②工作薄打开事件代码如下:
'工作薄开启事件\\nPrivateSubWorkbook_Open()\\nSheet1.Select'sheet1工作表选中\\n登录.Show'显示登录窗体\\nEndSub\\n\\n'自杀代码\\nSubKillme()\\nWithThisWorkbook'对当前工作薄\\n.Saved=True'保存文件\\n.ChangeFileAccessxlReadOnly'将当前工作簿设为只读。\\nKill.FullName'Kill:从磁盘中删除文件;\\n.Close'关闭Excel\\nEndWith\\nEndSub五、小结
本文分享的是自杀代码,文中讲解了自杀代码的写法,该怎么用,在什么情况西用等问题。
用自杀代码是一种有风险的操作,虽然可以让我们的数据免遭泄露,但是也给自身的数据安全带来隐患,因为一不小心文件就没了,自己的数据就肯可能找不到了。所以一定要慎用。
当然,Excel既然能自杀,也可以杀其他的文件,这个知识点在这里就不展开讲了,如果别有居心之人利用这种代码,其后果就会不堪设想。
我是上班下班,因为爱好办公软件、喜欢分享。所以来到这里将我的学习心得和踩过的一些坑,和大家聊聊,希望大家学习我成功的经验,避开我踩过的坑。我和你们一起进步。
好了,今天就聊到这里,感谢各位朋友的关注和支持。
如果你喜欢我分享的内容,请点个赞支持下;
如果你觉得我分享的内容对你有帮助,可以关注我;
如果要看我以前分享过的好玩的内容,大家可以去我的主页查看历史文章。
好了,文章到此结束,希望可以帮助到大家。