Как напечатать файл Excel в PDF с помощью опции .ExportAsFixedFormat через макрос Excel - PullRequest
0 голосов
/ 14 ноября 2018

Я написал код для печати файла Excel в файл .PDF с параметрами настройки страницы. А также устраняет необходимость наличия диалогового окна с подсказкой.

Но мне нужно знать, нужно ли мнеимя файла .PDF совпадает с именем файла Excel с указанным ниже кодом , но не с тем же путем назначения . Как пример: = если имя файла Excel равно " Отчет о качестве 1411185623689 "Этот файл генерируется системой, поэтому его имя меняется каждый день.Как мне это решить?

 Sub Save_As_PDF()
With ActiveSheet.PageSetup
     .Orientation=xlLandscape
     .Zoom=16

End With
ActiveSheet.ExportAsFixedFormat _
 Type:=xlTypePDF, _
 FileName:="C\:Desktop\Reports\Same as excel file name", _
 Quality:=xlQualityStandard, _
 IncludeDocProperties:=False, _
 IgnorePrintAreas:=False, _
 OpenAfterPublish:=True

Exit Sub

1 Ответ

0 голосов
/ 14 ноября 2018

Не проверено, но предполагается, что вы хотите присвоить PDF-файл то же имя, что и файл Excel (без учета расширения файла), но в другой папке (например, в некоторой папке / каталоге с именем "C\:Desktop\Reports\"):

Option explicit

Sub SaveAsPDF()

Dim folderPath as string
folderPath = "C\:Desktop\Reports\" ' Change to whatever folder, but make sure it ends with a \

If len(dir$(folderPath, vbDirectory)) = 0 then
Msgbox("'" & folderPath & "' is not a valid/existing directory. Abandoning export. Code will stop running now.")
Exit sub
End if

Dim Filename as string
Filename = left$(Thisworkbook.name, instrrev(Thisworkbook.name, ".", -1, vbbinarycompare) -1) & ".pdf"

With ActiveSheet.PageSetup
     .Orientation=xlLandscape
     .Zoom=16
End With
ActiveSheet.ExportAsFixedFormat _
 Type:=xlTypePDF, _
 FileName:=folderPath & filename, _
 Quality:=xlQualityStandard, _
 IncludeDocProperties:=False, _
 IgnorePrintAreas:=False, _
 OpenAfterPublish:=True

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