Excel VBA工作薄 5.19工作薄到期自动删除 工作薄自杀了
前景提要
在之前我们分享了 设置工作薄有效期的方法,通过这个方法,当到了工作薄有效期的时候,工作薄就没有办法打开,等于也是保护了我们的数据,后台小伙伴们并不满足这样的功能,可能是我设置的提示窗口太low,大家想要实现的功能是工作薄到期之后自动删除,消失的无隐无踪,so,其实也不难,VBA中有一个kill方法,就是相当于工作薄的删除功能,来上代码
场景模拟
假设有同事拿到了我们传送的文件,我们依然希望对方只能在今天查看,在明天查看工作播的时候,工作薄的数据就看不到了,仅仅是提示工作薄坏了,似乎比较的low,那我们换种方式,到期之后一旦打开工作薄,则自动删除工作薄,消失的无隐无踪,你也可以理解为工作薄的自杀,哈哈
代码区
今天的功能想要实现,依然需要分为两个部分的代码来实现,让我们分布来一个一个的执行
第一步,依然是设置有效期
如果大家还有印象的话,应该记得有效期应该是在thisworkbook这里写的
Private Sub Workbook_Open()
Dim time1, time2
time1 = Date
time2 = #5/10/2019# '到期时间可以自行更改
If time2 <= time1 Then
Call KillThisWorkbook
End If
End Sub
然后我们插入一个代码模块
Sub KillThisWorkbook()
Application.DisplayAlerts = False
With ThisWorkbook
.Saved = True
.ChangeFileAccess xlReadOnly
kill .FullName
.Close
End With
Application.DisplayAlerts = True
End Sub
OK ,两段代码试行完毕,这里我们补充说明一点,在之前分享有效期的写法的时候,我们的到期时间写的太绝对的,如果正好到期的那天对方休息或者对方没有打开工作薄,代码的保护功能就失效了,所以今天我们这里更改下,利用时间大小的关系来进行判断
只要现在的日期大于等于我们设置的日期,多将会删除工作薄,不管是隔多少天之后打开,代码都是有效的
代码完成来看看效果
当工作薄被打开的时候,系统自动判断当前的时间,如果时间相等或者是大于我们设定的时间,都会执行删除工作薄的命令
然后代码进入了删除工作薄的模块,这里我们用断掉调试的方法才能看到代码的,实际打开的过程是一闪而过的
之前我们的工作薄是存在的
当执行了打开并且超过有效期之后,一闪而过之后,来看看文件夹
amazing,工作薄被成功的杀死了,这就是工作薄的自杀功能,之前需要此功能的小伙伴们快拿去用吧
温馨提示:
如果那自己的文件测试的时候,记得备份,否则。。。。amazing、、、、你会吃惊的。