ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何使用VBA在指定的时间间隔下自动保存工作簿?

如何使用VBA在指定的时间间隔下自动保存工作簿?

作者:绿色风 分类: 时间:2022-08-17 浏览:143
楼主
轩辕轼轲
Q:众所周知,Excel自带的自动保存功能是有缺陷的,当到了保存时间点的时候,如果我们工作表处于交互状态的时候,Excel自带的自动保存功能就暂时失效了,这种情况下,能否用VBA代码实现这种自动保存功能,弥补这个缺陷呢?
A:我们可以用VBA里面的Ontime来实现工作簿的定时保存,只要你按照下述步骤操作,那么就相当于给你的工作簿安装了一个保险锁,再没有丢失数据的后顾之忧了。
第一步: 添加Thisworkbook的代码如下:
  1. Private Sub Workbook_Open()    '打开工作簿代码生效      
  2. T = Now          '取当前的系统时间
  3. For i = 1 To 72       '每10分钟保存一次,打开工作簿后的12个小时有效,所以总共要设置72个时间点  
  4.       Application.OnTime T + (1 / 24 / 6) * i, "自动保存"          '给一个时间进行加1的操作,表示是加1天,所以要换算成分钟
  5. Next i         
  6. End Sub         
  7. Private Sub Workbook_BeforeClose(Cancel As Boolean)       '关闭工作簿的时候,停止ON TIME事件
  8. On Error Resume Next      '关闭工作簿的时候防错处理
  9. For i = 1 To 72         
  10.       If T + (1 / 24 / 6) * i > Now Then Application.OnTime T + (1 / 24 / 6) * i, "自动保存", , False    '停止未执行的On Time事件   
  11. Next         
  12. End Sub      

第二步: 插入一个模块,在这个公共模块里面输入下面的代码:
  1. Public T          '声明一个用来存储打开工作簿时间的公共变量
  2. Sub 自动保存()         
  3.       ThisWorkbook.Save          '保存工作簿
  4. End Sub  
      

自动保存工作簿的代码.rar
2楼
xmyjk
谢谢分享,定时保存功能。
3楼
qinhuan66
好好学习天天向上
4楼
icenotcool


免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap