工作中因某些数据或者自己制作的模板不想被别人传阅或者使用,需要设定一个定期损毁或者使用次数限制。超出后Excel内容自动损毁,感兴趣的看过来get一下。Excel宏小白直接复制粘贴进去就可以使用,非常好用。(我工作表一般都是设置一个定时损毁日期,这样给别人或者自己离职后这些成果也不用担心被别人肆意使用)
我们先来学习一下定时损毁代码
文件>选项>自定义功能区>✓开发工具
点击开发工具功能区>点击Visual Basic>双击ThisWorkbook即可弹出一个可以编辑的对话框,把现代码直接复制粘贴进去保存
private sub workbook_open()
on error resume next
application.displayalerts=false
if now()>=cdate("25/8/2021 00:00:00") then
kill activeworkbook.fullname
application.quit
end if
application.displayalerts=true
end sub
上面定时在2021年8月25日00:00:00自动损毁,超过这个时间再点击该文件的时候无法打开
因为宏需要宏格式才能保存代码,否则无法保存,我们设置一下
文件>另存为>保存类型(T):Excel 启用宏的工作簿(*.xlsm)
为了防止老是弹出隐私警告对话框,我们可以简单设置一下:
文件>选项>信任中心>信任中心设置>个人信息选项>文档特定设置:取消✓保存是从文件属性中删除个人信息(R)>确定>确定
接下来我们来学习一下次数限制损毁方法:
private sub workbook_open()
rem *********
rem 功能:次数限制
rem*********
dim counter as long,term as long,chk
chk=getsetting("hhh","budget","使用次数","")
if chk="",then
term=200'限制使用次数200次
msgbox"本工作表只能使用" & term & "次" & vbcrlf & "超过次数将自动销毁!",vbexclamation
savesetting"hhh","budget","使用次数",term '将值写入注册表
else
counter=val(chk)-1 '计算使用剩余次数
msgbox"你还能使用" & "次,请及时注册!",vbexclamation
savesetting"hhh","budget","使用次数",term '写入剩余次数
if counter<=0 then
deletesetting"hhh","budget","使用次数"
killme
end if
end if
end sub
public sub killme()
application.displayalerts=false
activeworkbook.changefileaccess xlreadonly
kill activeworkbook.fullname
thisworkbook.close false
end sub
以上分享给各位,希望能给各位工作带来便利