Sub 备份当前文档()
' On Error Resume Next
''
'' 另存当前文档 Macro
'' 宏由 ZPL 录制,时间: 2023/04/03
Dim 当前文件地址, 当前文件名, 当前文件全名 As String
Dim 备份文件夹, 备份文件名, 备份文件全名 As String
' 获取文件路径和文件名
当前文件全名 = ThisWorkbook.FullName
当前文件名 = ThisWorkbook.Name
' 获取备份文件夹的完整路径
备份文件夹 = ThisWorkbook.Path & "\备份路径\"
备份文件名 = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & "_" & Format(Now, "yyyy-mm-dd hh-mm-ss") & ".xlsm"
备份文件全名 = 备份文件夹 & 备份文件名
' 创建备份文件夹(如果不存在)
If Dir(备份文件夹, vbDirectory) = "" Then
MkDir 备份文件夹
End If
' 备份文件
' FileCopy filePath, backupFolder & Format(Now, "yyyy-mm-dd hh-mm-ss") & " " & fileName
Application.RecentFiles.Add Name:=当前文件全名
ActiveWorkbook.SaveAs fileName:=备份文件全名, AccessMode:=xlNoChange, ConflictResolution:=1, AddToMru:=-1
Workbooks.Open 当前文件全名 '打开工作簿
Windows(备份文件名).Activate
ActiveWorkbook.Save '保存当前工作簿
ThisWorkbook.Save '保存当前代码所在的工作簿
Windows(备份文件名).Close
' Windows("F:\studay\1 书籍PDF\办公自动化\VBA\V45.xlsm").Close
' Windows("V45.xlsm").Close
Windows(当前文件全名).Activate
Windows(当前文件名).Activate
' 提示备份完成
MsgBox "备份完成!", vbInformation
End Sub
Sub Auto_Open()'打开文档时自动运行的宏
Call 备份当前文档
End Sub
'下面是一个示例:在 Workbook_Open 事件中,每隔三分钟自动运行一个名为 AutoRunMacro 的宏
Private Sub Workbook_Open()
Call ScheduleMacro
End Sub
Sub ScheduleMacro()
Application.OnTime Now + TimeValue("00:03:00"), "AutoRunMacro"
End Sub
Sub AutoRunMacro()
Call 备份当前文档
End Sub
'要取消在三分钟后自动调用 AutoRunMacro 宏,请执行以下代码:
Private Sub StopScheduledMacro()
Application.OnTime Now + TimeValue("00:03:00"), "AutoRunMacro", , False
End Sub