Backup on File Close Excel VBA

后端 未结 1 1544
终归单人心
终归单人心 2021-01-27 06:32

I want Excel to automatically backup a workbook on file close without prompts to the user. I found the excellent code below online (forgot source) but the backup FileType is cha

相关标签:
1条回答
  • 2021-01-27 07:01

    The modified function below should save a backup with datetime of saving included instead of ".BAK". Modified part is commented. Also, posting properly indented helps a bunch ;)

    Sub SaveWorkbookBackup()
    
    Dim awb As Workbook, BackupFileName As String, i As Integer, OK As Boolean
    If TypeName(ActiveWorkbook) = "Nothing" Then
    Exit Sub
    
    Set awb = ActiveWorkbook
    
    If awb.Path = "" Then
        Application.Dialogs(xlDialogSaveAs).Show
    Else: BackupFileName = awb.FullName
    i = 0
    While InStr(i + 1, BackupFileName, ".") > 0
        i = InStr(i + 1, BackupFileName, ".")
    Wend
    If i > 0 Then
    BackupFileName = Left(BackupFileName, i - 1)
    
    'Modified this part
    If Application.Version >= 12 Then 
        BackupFileName = BackupFileName & "_backup_" & Format(Date, "yyyymmdd") & "-" & Format(Time, "Hhmm") & ".xlsx"
    Else
        BackupFileName = BackupFileName & "_backup_" & Format(Date, "yyyymmdd") & "-" & Format(Time, "Hhmm") & ".xls"
    End If
    OK = False
    On Error GoTo NotAbleToSave
    With awb
        Application.StatusBar = "Saving this workbook..."
        .Save
        Application.StatusBar = "Saving this workbook backup..."
        .SaveCopyAs BackupFileName
        OK = True
    End With
    End If
    
    NotAbleToSave:     Set awb = Nothing
        Application.StatusBar = False
        If Not OK Then
            MsgBox "Backup Copy Not Saved!", vbExclamation, ThisWorkbook.Name
        End If
    End Sub
    
    0 讨论(0)
提交回复
热议问题