8行代码给Excel设置一个“定时炸弹”,时间一到,文件自毁!
经营范围:电脑组装,电脑维修,智能家居设备,苹果电脑系统安装,苹果手机刷机,监控安装,媒体编辑,数据恢复,复印打印,网站制作等 |
在使用Excel时处于某种安全方面的需求,有时可能会让文件有一个“安全打开时间”,如果超过这个指定的时间打开文件时,文件会启动“自毁模式”而自动清除,就像给Excel文件设置了一个“定时炸弹”一样。
如何开启Excel定时自毁模式?
先来看一下开启自毁模式后的效果吧!
当Excel文件在超过设置好的“安全期”后打开文件时,文件就会启动“自毁模式”而自动清除。那么这种功能是如何实现的呢?
首先,在需要添加这个”自毁模式“的Excel表格中按下快捷键【Alt+F11】打开Excel的”Microsoft Visual Basic for Applications“窗口。
然后双击左侧的ThisWordbook图标后在打开的右侧窗口中输入以下的代码内容。
Private Sub workbook_open() Rem********************************** Rem 功 能:定时自毁 Rem********************************** On Error Resume Next Application.DisplayAlerts = False If Now() >= CDate("12/19/2019 18:10:20") Then ActiveWorkbook.ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName Applicvation.Quit End If Application.DisplayAlerts = Ture End Sub |
输入后的效果如下图所示:
其中,上面代码中的”12/19/2019 18:10:20“为文档自毁的时间,大家请根据自己的实际情况来设定。
完成之后按下【Ctrl+S】的快捷键保存文件。
需要注意的是,这里的文档不能保存成为普通【Excel工作薄】,一定要保存成【Excel启用宏的工作薄】才能正常执行文件中的程序代码。切记!切记!
至此,Excel的定时自毁模式成功开启,大功告成!
如何开启Excel指定次数自毁模式?
有时,对于Excel文档的销毁不一定是按照指定的时间,也有可能是阅读达到指定次数后启动”自毁模式“,那么这种效果又如何实现呢?
其实,实现方法和过程与上面的过程都完全一样,唯一不同的只是实现这种自毁模式的代码段。
Private Sub workbook_open() Dim counter As Long, term As Long, chk chk = GetSetting("hhh", "budget", "使用次数", "") If chk = "" Then term = 10 '限制使用10次 MsgBox "本工作簿只能使用" & term & "次" & vbCrLf & "超过次数将自动销毁!", vbExclamation SaveSetting "hhh", "budget", "使用次数", term '将值写入注册表 Else counter = Val(chk) - 1 '计算剩余使用次数 MsgBox "你还能使用" & counter & "次,请急时注册!", vbExclamation SaveSetting "hhh", "budget", "使用次数", counter '写入剩余次数 If counter <= 0 Then '如果使用次数用完,就删除注册表记录使用次数的信息,调用自毁代码 DeleteSetting "hhh", "budget", "使用次数" killme End If End If End Sub Public Sub Killme() Application.DisplayAlerts = False ActiveWorkbook.ChangeFileAccesss xlReadOnly Kill ActiveWorkbook.FullName ThisWorkbook.Close False End Sub |
上图就是实现Excel文档按次销毁的代码。其中,“term = 10”表示文档可阅读次数,当文档阅读次数超过这个数时就会自动销毁。
总结
以上实现Excel文档自毁的两种方法都是利用了Excel宏来实现的。对于限制大多数小白用户完全是够用了。但是对于那些了解宏的大师们面言,这就是小儿科了。