Один человек в команде не может сохранить на рабочем столе, путь к получению не найден

#excel #vba

Вопрос:

У меня есть сценарий Excel VB, в то время как, как только вы нажмете кнопку, он сохранится в формате PDF на рабочем столе. Но один человек в команде получает ошибку «Путь не найден». Мы все находимся в домене для работы

Вот сценарий, любые советы приветствуются

 '*** Automatically Creates and Saves PDF to Desktop ***
    Sheets("cA Quote").Select
    ChDir Environ("HOMEPATH") amp; "Desktop"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Environ("HOMEPATH") amp; "Desktop" amp; UCase([C9]) amp; " cA Quote " amp; sFileSaveDate amp; ".pdf", Quality:= _
            xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
 

Комментарии:

1. Как насчет папки «Загрузки»?

2. Возможно, вам придется добавить %HOMEPATH% в %HOMEDRIVE%

3. Если вы пройдете полный путь, в этом нет необходимости ChDir . Как предполагает Environ("HOMEDRIVE") amp; Environ("HOMEPATH") dbmitch, похоже, это правильный путь.

Ответ №1:

Давайте попробуем другой метод динамического получения пути к рабочему столу. Этот запрашивает у оболочки путь:

 Public Function DesktopPath() As String
    With CreateObject("WScript.Shell")
        GetDesktop = .SpecialFolders("Desktop") amp; ""
    End With
End Function
 

Вам не нужно выбирать или ChDir выбирать, чтобы ваш код выглядел следующим образом:

 '*** Automatically Creates and Saves PDF to Desktop ***
    Sheets("cA Quote").ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=DesktopPath amp; UCase([C9]) amp; " cA Quote " amp; sFileSaveDate amp; ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _ 
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
 

Ответ №2:

Для меня самый простой способ сохранить что-то на рабочем столе пользователя-это использовать Environ(«UserProfile») и «Desktop», который возвращает полный путь. В этом случае вам не нужен ChDir.

 '*** Automatically Creates and Saves PDF to Desktop ***
Sheets("cA Quote").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Environ("UserProfile") amp; "Desktop" amp; UCase([C9]) amp; " cA Quote " amp; sFileSaveDate amp; ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True