Когда я нажимаю НЕТ или ОТМЕНА в MsgBox, я получаю ошибку времени выполнения 1004 в Excel VBA при сохранении - PullRequest
0 голосов
/ 19 октября 2018

У меня есть код макроса VBA, чтобы сохранить как счет-фактуру Excel с помощью кнопки.Всякий раз, когда я нажимаю «ДА», файл сохраняется снова.Но когда я нажимаю «НЕТ», «ОТМЕНА» или даже ЗАКРЫВАЮ окно MSgBox, я получаю ошибку во время выполнения «1004», не могу получить доступ к «filename.xlsm».

Sub Save_As()
Dim filename As String
Dim msgResponse As VbMsgBoxResult
filename = "C:\Users\bala\Desktop\SDH\Excel Invoice\" & Range("F4") & Range("G4") & "_" & Range("M10")
If Len(Dir(filename)) = 0 Then
    ActiveSheet.SaveAs filename, FileFormat:=52, CreateBackup:=True
    Application.DisplayAlerts = True
    MsgBox "Invoice saved successully", vbOKOnly, "INVOICE SAVED"
Else
   msgResponse = MsgBox("Do you want to overwrite?", vbYesNoCancel)
   If msgResponse = vbYes Then
        ActiveSheet.SaveAs filename, FileFormat:=52, CreateBackup:=True
        Application.DisplayAlerts = True
        MsgBox "Invoice saved successully", vbOKOnly, "INVOICE SAVED"
   Else
       Exit Sub
    End If
End If

End Sub

enter image description here

1 Ответ

0 голосов
/ 19 октября 2018

Вы всегда должны проверять реакцию на ввод пользователя, в этом случае какая кнопка была нажата.

Dim msgResponse As VbMsgBoxResult
msgResponse = MsgBox("Do you want to overwrite?", vbYesNoCancel)

If msgResponse = vbYes Then
    ' Overwrite file
Else
    ' Don't
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...