VBA Excel - недопустимый вызов процедуры или аргумент при сохранении файла - PullRequest
0 голосов
/ 04 августа 2020

Доброе утро,

Я столкнулся со следующей проблемой. Когда я пытаюсь сохранить свой файл в новой версии, время от времени я получаю сообщение об ошибке, в котором говорится о: Неверный вызов процедуры или аргумент - sChangeVersiojn enter image description here

See my code below:

 Sub Version_save()
 ' Saving file under the newer version wothout changing its name
 On Error GoTo E_Handle
 Dim strFileName  As String
 Dim strFileExt As String
 strFileName = ThisWorkbook.Name
 strFileExt = Mid(strFileName, InStrRev(strFileName, "."))
 strFileName = Left(strFileName, InStrRev(strFileName, ".") - 1) '   get rid of the file extension (it should be .xlsm)
 strFileName = Left(strFileName, InStrRev(strFileName, "V") - 1) '   now go back to the last "V" in the file name
 strFileName = strFileName & "V" & ThisWorkbook.Worksheets("Frontsheet").Range("D38") & ".0" & strFileExt
 ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & strFileName
 Debug.Print strFileName
 Debug.Print strFileExt
 sExit:
     On Error Resume Next
     Exit Sub
 E_Handle:
     MsgBox Err.Description & vbCrLf & vbCrLf & "sChangeVersiojn", vbOKOnly + vbCritical, "Error: " & 
     Err.Number
     Resume sExit
 End Sub

According to thread below:

Run Time Error 5 - Недействительный вызов процедуры или аргумент

Я должен изменить кавычки, но я действительно не знаю, где мне это делать.

Есть ли способ избавиться от этой ошибки ?

1 Ответ

1 голос
/ 04 августа 2020

Ваш код предполагает, что ваше имя файла соответствует определенному шаблону, а затем выдает бесполезное сообщение об ошибке, если это не так.

Вы можете проверить, соответствует ли имя файла шаблону, а затем предпринять соответствующие действия, если оно не. Если это так, продолжайте и измените имя и сохраните как.

Добавьте это в верхнюю часть вашего Sub и измените шаблон в соответствии с вашими потребностями.

'Test if file name contains a "V", and not as first or last character in the name.  Also require a .xlsm or .xlsx extension
If Not ThisWorkbook.Name Like "*?V?*.xls[mx]" Then
    MsgBox "File Name """ & ThisWorkbook.Name & """ does not match required pattern", vbOKOnly, "Error"
    ' File name does not conform.  Now What?
    GoTo sExit
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...