|
- Sub 备份当前文档()
- ' On Error Resume Next
- 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(当前文件全名).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
复制代码
|
|