Обработка ошибок макроса, когда путь сохранения не существует - PullRequest
0 голосов
/ 30 марта 2019

Я использую следующий код для сохранения версий резервной копии в паре разных внешних хранилищ резервных копий и в исходный файл.Иногда, хотя один из внешних дисков резервного копирования не подключен и выдает ошибку.

Как я могу перейти к следующей строке кода для выполнения двух других сохранений?Я также добавлю окно сообщения, когда это произойдет.

Sub SaveToLocations()
' Saves active file to current plus two other backup locations, appends date and time in front of file name

    Dim datim As String
    datim = Format(CStr(Now), "yyyy_mm_dd_hh_mm_ss_")

    ActiveWorkbook.SaveCopyAs "I:\FBackupCS\" & datim & ActiveWorkbook.Name
    ActiveWorkbook.SaveCopyAs "E:\CS Docs\FBackupCS\" & datim & ActiveWorkbook.Name
    ActiveWorkbook.Save
End Sub

1 Ответ

0 голосов
/ 30 марта 2019

Вы можете использовать следующую функцию

Function wkbSaveCopyAs(ByVal wkb As Workbook, ByVal fName As String) As Boolean

    On Error GoTo EH

    wkb.SaveCopyAs fName
    wkbSaveCopyAs = True

EH:

End Function

в вашем коде вот так

Sub SaveToLocations()
' Saves active file to current plus two other backup locations, appends date and time in front of file name

    Dim datim As String
    datim = Format(CStr(Now), "yyyy_mm_dd_hh_mm_ss_")

    'ActiveWorkbook.SaveCopyAs "I:\FBackupCS\" & datim & ActiveWorkbook.Name
    If Not wkbSaveCopyAs(ActiveWorkbook, "I:\FBackupCS\" & datim & ActiveWorkbook.Name) Then
        MsgBox "Ups, not saved", vbOKOnly
    End If

    'ActiveWorkbook.SaveCopyAs "E:\CS Docs\FBackupCS\" & datim & ActiveWorkbook.Name
    If Not wkbSaveCopyAs(ActiveWorkbook, "E:\CS Docs\FBackupCS\" & datim & ActiveWorkbook.Name) Then
        MsgBox "Ups, not saved", vbOKOnly
    End If

    ActiveWorkbook.Save
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...