Переменная не согласована в макросе excel vba - PullRequest
0 голосов
/ 04 мая 2020

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

Sub SaveFile()

Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject

Dim filepath As String

name = "Siemens"
filepath = "F:\Dave backup\Open Orders\Label Manifests\Active  Labels Manifest\Manifest Related\File saving testing folder\" & name & "\" & name & " Manifest " & Format(Now, "mm-dd-yyyy")

 If fso.DriveExists("F:\") = True Then

        'ActiveWorkbook.SaveAs filename:="C:\Users\dgray\Documents\" & name & " Manifest " & Format(Now, "mm-dd-yyyy")
        'ActiveWorkbook.SaveAs filename:="F:\Dave backup\Open Orders\" & name & "\" & name & " Manifest " & Format(Now, "mm-dd-yyyy")
        ActiveWorkbook.SaveAs filename:=filepath
    Else

         'ActiveWorkbook.SaveAs filename:="C:\Users\dgray\Documents\" & name & " Manifest " & Format(Now, "mm-dd-yyyy")
        ActiveWorkbook.SaveAs filename:="F:\Dave backup\Open Orders\Label Manifests\Active  Labels Manifest\Manifest Related\File saving testing folder\" & name & "\" & name & " Manifest " & Format(Now, "mm-dd-yyyy")


    End If

End Sub

Вот ошибка, которую я получаю:

Error Message

Я не знаю, если вы видно, но последняя часть сообщения об ошибке гласит: «\ Siemens \ 8E555720. Здесь также должно быть указано имя клиента (например, Siemens). В коде я установил имя клиента в переменной« name ». Итак, почему это дает мне эта безумная ошибка? Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Что-то вроде этого может быть лучше:

Sub SaveFile()

    Const PATH_C As String = "C:\Users\dgray\Documents\"
    Const PATH_F As String = "F:\Dave backup\Open Orders\Label Manifests\" & _
        "Active Labels Manifest\Manifest Related\File saving testing folder\"

    Dim fileName As String, custName As String

    custName = "Siemens"

    fileName = custName & " Manifest " & Format(Now, "mm-dd-yyyy") & ".xlsx" 'or .xlsm

    ActiveWorkbook.SaveAs fileName:=PATH_C & fileName 'assume C is always available

    'save to F if available
    If Len(Dir(PATH_F)) > 0 Then
        'assumes the custName folder already exists...
        ActiveWorkbook.SaveAs fileName:=PATH_F & custName & "\" & fileName
    End If

End Sub
0 голосов
/ 04 мая 2020

Я вижу пробел в имени папки, который может вызвать эту ошибку.

Удалив пробел в имени папки, эта ошибка будет исправлена.

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