Excel VBA工作薄 5.19工作薄到期自动删除 工作薄自杀了

前景提要

在之前我们分享了 设置工作薄有效期的方法,通过这个方法,当到了工作薄有效期的时候,工作薄就没有办法打开,等于也是保护了我们的数据,后台小伙伴们并不满足这样的功能,可能是我设置的提示窗口太low,大家想要实现的功能是工作薄到期之后自动删除,消失的无隐无踪,so,其实也不难,VBA中有一个kill方法,就是相当于工作薄的删除功能,来上代码

场景模拟

假设有同事拿到了我们传送的文件,我们依然希望对方只能在今天查看,在明天查看工作播的时候,工作薄的数据就看不到了,仅仅是提示工作薄坏了,似乎比较的low,那我们换种方式,到期之后一旦打开工作薄,则自动删除工作薄,消失的无隐无踪,你也可以理解为工作薄的自杀,哈哈

代码区

今天的功能想要实现,依然需要分为两个部分的代码来实现,让我们分布来一个一个的执行

第一步,依然是设置有效期

如果大家还有印象的话,应该记得有效期应该是在thisworkbook这里写的

Private Sub Workbook_Open() Dim time1, time2time1 = Datetime2 = #5/10/2019# '到期时间可以自行更改If time2 <= time1 Then Call KillThisWorkbookEnd IfEnd Sub

然后我们插入一个代码模块

Sub KillThisWorkbook()Application.DisplayAlerts = FalseWith ThisWorkbook .Saved = True .ChangeFileAccess xlReadOnly kill .FullName .CloseEnd WithApplication.DisplayAlerts = TrueEnd Sub

OK ,两段代码试行完毕,这里我们补充说明一点,在之前分享有效期的写法的时候,我们的到期时间写的太绝对的,如果正好到期的那天对方休息或者对方没有打开工作薄,代码的保护功能就失效了,所以今天我们这里更改下,利用时间大小的关系来进行判断

只要现在的日期大于等于我们设置的日期,多将会删除工作薄,不管是隔多少天之后打开,代码都是有效的

代码完成来看看效果

当工作薄被打开的时候,系统自动判断当前的时间,如果时间相等或者是大于我们设定的时间,都会执行删除工作薄的命令

然后代码进入了删除工作薄的模块,这里我们用断掉调试的方法才能看到代码的,实际打开的过程是一闪而过的

之前我们的工作薄是存在的

当执行了打开并且超过有效期之后,一闪而过之后,来看看文件夹

amazing,工作薄被成功的杀死了,这就是工作薄的自杀功能,之前需要此功能的小伙伴们快拿去用吧

温馨提示:

如果那自己的文件测试的时候,记得备份,否则。。。。amazing、、、、你会吃惊的。

(0)

相关推荐