#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