Ошибка «Файл не найден» при сохранении ActiveWorkbook - PullRequest
1 голос
/ 03 февраля 2020

Я получаю сообщение об ошибке в строке после комментария в приведенном ниже коде.

Sub SyncToDatabase()

    Dim WS1 As Worksheet
    Set WS1 = Sheets("Observation Form")
    DbFile = WS1.Range("O3").Value
    LastLocalChange = WS1.Range("O5").Value
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.GetFile(DbFile)
    If objFile.DateLastModified < LastLocalChange Then
        Kill (DbFile)
        ThisWorkbook.Sheets("Data Output(Hidden)").Copy

        ' i get the error on the next line
        ActiveWorkbook.SaveAs DbFile, FileFormat:=51

        ActiveWorkbook.Close False
    End If

End Sub

Сообщение об ошибке:

"Файл не найден"

Путь к файлу: "C: \ Users \ paul.d_wsd \ Google Drive \ Winchester \ Science Department \ Извлеченные уроки \ Извлеченные уроки. Преобразование Excel (база данных) .xlsm"

1 Ответ

0 голосов
/ 03 февраля 2020

Как я уже упоминал в комментарии, вы не можете получить сообщение об ошибке «Файл не найден» в строке .SaveAs. Перед использованием файла в Set objFile = objFSO.GetFile(DbFile) и Kill (DbFile) необходимо проверить, существует ли файл. В противном случае вы получите ошибку File Not Found. Вот пример.

'~~> Check if DbFile is not empty
If Len(Trim(DbFile)) = 0 Then Exit Sub

'~~> Check if file exists
If Dir(DbFile) <> "" Then
    LastLocalChange = WS1.Range("O5").Value
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.GetFile(DbFile)
    If objFile.DateLastModified < LastLocalChange Then
        Kill (DbFile)
        ThisWorkbook.Sheets("Data Output(Hidden)").Copy
        ' i get the error on the next line (you cannot make code bold)
        ActiveWorkbook.SaveAs DbFile, FileFormat:=51
        ActiveWorkbook.Close False
    End If
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...