Ошибка 1004 при попытке сохранить PDF в виде макроса в Excel на сетевом диске - PullRequest
0 голосов
/ 27 мая 2019

Заранее извиняюсь, поскольку я очень новичок в этом и нахожу это очень крутой кривой обучения!

У меня есть документ Excel, который используется мной и коллегами, и есть кнопка макроса, чтобы сохранить этокак PDF-документ.Файл PDF необходимо сохранить в папке на сетевом диске, в папке года, а затем в папке месяца.

У меня есть код, который отлично работает для меня.Я создаю папку на новый год, если она не существует, создает папку на месяц, если она не существует, а затем сохраняет PDF-файл в этой папке.

Однако это работает только для меня.

Когда коллега пытается сделать это на своем компьютере, Excel создает папки, но не сохраняет PDF, выдавая ошибку времени выполнения 1004.

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

Вот код, который у меня есть в данный момент:

    Sub Save_ActSht_as_Pdf()
    ' Saves active sheet as PDF file.
    Const basePath = "I:\folder path\"
    If Dir(basePath & Year(Date), vbDirectory) = "" Then MkDir basePath & Year(Date)
    If Dir(basePath & Format(Date, "yyyy\\mmmm yy"), vbDirectory) = "" Then MkDir basePath & Format(Date, "yyyy\\mmmm yy")
    ActiveSheet.ExportAsFixedFormat xlTypePDF, Format(Now, "yyyy\\mmmm yy\\ddd MMMM d yyyy AM/PM"), Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

(я заменил фактический путь к папкедля «пути к папке» для простоты)

Строка, которая выделяется во время отладки, это строка, начинающаяся с ActiveSheet

Заранее благодарим вас за любую помощь в решении этой проблемы.

1 Ответ

0 голосов
/ 27 мая 2019

Это работает для меня.

Option Explicit

   Sub Save_ActSht_as_Pdf()
    ' Saves active sheet as PDF file.
    Const basePath = "C:\folder path\"
    Dim fn As String
    If Dir(basePath & Year(Date), vbDirectory) = "" Then MkDir basePath & Year(Date)
    If Dir(basePath & Format(Date, "yyyy\\mmmm yy"), vbDirectory) = "" Then MkDir basePath & Format(Date, "yyyy\\mmmm yy")
    fn = basePath & Format(Now, "yyyy\\mmmm yy\\ddd MMMM d yyyy AM/PM") & ".pdf"
    ActiveSheet.ExportAsFixedFormat xlTypePDF, Filename:=fn, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

Мне пришлось создать папку «путь к папке» вручную, поскольку MkDir может создавать только один уровень папки одновременно.

Также, если ActiveSheet пусттогда ошибка времени выполнения 1004 происходит как ничего не печатать

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