Неожиданно экспортный код PDF больше не работает. Что-то не так с моим кодом? - PullRequest
0 голосов
/ 07 мая 2019

У меня есть код для экспорта в PDF в конкретную папку на Sharepoint. Код всегда работал нормально до недавнего времени. И я не могу понять, почему. В коде у меня есть 2 строки для пути, которые я объединяю. Если я вырежу часть пути, это сработает.

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

Ошибка времени выполнения 1004: определяемая приложением ошибка объекта

Если я изменюсь Filename:=newpath3 в Filename:=newpath1 Экспортирует PDF. Так что-то не так с newpath2? Я проверил с помощью msgbox и не могу найти ошибку с полным путем.

Private Sub CommandButton1_Click() 
    Dim newpath1 As String
    Dim newpath2 As String
    Dim newpath3 As String

    newpath1 = Left(ActiveWorkbook.Path, 66)
    newpath2 = "99%20Vedlegg%20til%20faktura"
    newpath3 = newpath1 & newpath2

    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=newpath3 & "/" & "test", _
        Quality:=xlQualityStandard, _
        OpenAfterPublish:=True
End Sub

1 Ответ

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

Отдельные компоненты имени файла (то есть каждый подкаталог вдоль пути и окончательное имя файла) ограничены 255 символами, а общая длина пути ограничена примерно 32 000 символов.

Однако в Windows нельзя превышать значение MAX_PATH (259 символов для файлов, 248 для папок). См. http://msdn.microsoft.com/en-us/library/aa365247.aspx для получения полной информации.

Полагаю, вы недавно переместили файл в новую подпапку. Это также может быть неверное имя файла. Трудно сказать, не зная, какой у вас ActiveWorkbook.Path.

Вот моя функция экспорта в PDF:

Dim v As Variant
Dim Fname As String
Dim PdfFile As String

'Remove invalid characters from filenames
Fname = "test" 'Build your filename here
For Each v In Array("/", "\", "|", ":", "*", "?", "<", ">", """")
    Fname = Replace(Fname, v, "_")
Next

'Export activesheet as PDF
    PdfFile = ActiveWorkbook.Path & "\" & Fname & ".pdf"
    With ActiveSheet
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    End With

Это выведет PDF в то же место, что и ваш файл Excel.

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