如何让Excel表使用一次后即自我销毁?

文件要打开看过后就自动删除,如何通过VBA程序来实现呢?

解决方案:将文件的ChangeFileAccess属性设置为只读,即xlReadOnly,然后通过Kill代码删除文件即可。不过为了确保用户可以正常地查看文件一次,需要将代码写入工作簿时间“Workbook_BeforeClose”中。

具体方法如下:

第一步:新建一个工作簿(也可以打开已经存在的工作簿),按Alt+F11组合键打开VBE窗口。

第二步:双击Thisworkbook进入工作簿事件代码窗口,然后输入以下代码:

Private Sub Workbook_BeforeClose(Cancel As
Boolean)

ActiveWorkbook.ChangeFileAccess xlReadOnly ‘将文件设为只读模式

 Kill ActiveWorkbook.FullName   ‘删除文件

 Application.Quit   ‘退出程序

End Sub

第三步:保存工作簿,但不能关闭Excel。然后进入文件夹将文件复制两份,将两个文件夹分别命名为A.xlsm和B.xlsm。

第四步:关闭Excel,发现当前文件夹会自动删除,且不经过回收站回收,直接彻底删除。

工作簿再启用宏级文件属性为只读的前提下,通过Kill工作簿全名可以删除本工作簿。其中工作簿全名可以使用ActiveWorkbook.FullName表示也可以用Thisworkbook.FullName表示。

第五步:打开B.xlsm,然后关闭,B.xlsm也立即自我销毁。此时将A.xlsm发给客户即可。

注意,文件“自杀”的时候,工作簿的ChangeFileAccess属性有两个选项,包括xlReadWrite和xlReadOnly,只有在xlReadOnly状态下才可以实现删除当前文件。在编写这类“自杀”代码的时候,一定要先将文件备份,否则程序关闭就自我销毁,无法回收。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值