【144】Excel文件每30秒自动备份,防止文件丢失,宏代码
- 2026-09-14 20:56:47
【144】Excel文件每30秒自动备份,防止文件丢失,宏代码操作步骤: 新建宏,复制下面代码 

Dim NextBackupTime As Date ' 声明全局变量,用于存储下次备份时间Sub 自动备份()On Error GoTo ErrorHandlerDim backupPath As StringDim safeName As String' 处理文件名非法字符safeName = Replace(Replace(ThisWorkbook.Name, ":", "_"), "/", "_")' 检查并创建备份目录(兼容路径格式)If Dir("C:\Backup", vbDirectory) = "" Then MkDir "C:\Backup"' 生成带时间戳的备份路径(精确到秒)backupPath = "C:\Backup\" & safeName & "_" & Format(Now(), "yyyymmdd_hhmmss") & ".xlsx"' 执行备份ThisWorkbook.SaveCopyAs backupPathMsgBox "已备份到:" & backupPath, vbInformation, "备份成功"' 设置下一次备份时间(30秒后)NextBackupTime = Now() + TimeValue("00:00:30")Application.OnTime NextBackupTime, "自动备份"Exit SubErrorHandler:MsgBox "备份失败:" & Err.Description, vbCritical, "错误"End Sub' 启动自动备份(可绑定到按钮或工作簿打开事件)Sub 开始自动备份()Call 自动备份End Sub' 停止自动备份(需手动调用)Sub 停止自动备份()On Error Resume NextApplication.OnTime NextBackupTime, "自动备份", , FalseMsgBox "已停止自动备份", vbInformationEnd Sub
使用方法
- 启动备份
手动运行 开始自动备份:Private Sub Workbook_Open()Call 开始自动备份End Sub- 停止备份
手动运行 停止自动备份: 文件备份至C盘Backup目录下。Private Sub Workbook_BeforeClose(Cancel As Boolean)Call 停止自动备份End Sub
下面这个小程序,是我老哥开的,主要经营食材的,有需要的可以看一下,无需要的跳过。


本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。