Разрешить пользователю выбирать путь сохранения файла для «печати PDF» - PullRequest
0 голосов
/ 29 ноября 2018

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

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

Private Sub PrintPDF_Button_Click()

    Dim mySheets As Variant, sh

    mySheets = Array("COVER", "SCOPE", "SUMMARY", "Updated Hours EST", "RATES")

    Sheets(mySheets).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\sravi\test" & _
        ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, openafterpublish:=True

End Sub

Ответы [ 2 ]

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

Другой метод, который вы можете использовать, это метод Application.FileDialog().Вы сможете установить место сохранения по умолчанию и даже имя файла по умолчанию, если хотите.

Dim fileSave As FileDialog
Set fileSave = Application.FileDialog(msoFileDialogSaveAs)

With fileSave
    ' Your default save location here
    .InitialFileName = "C:\Users\sravi\*.pdf"

    If .Show = -1 Then

        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=.SelectedItems(1), _
                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, openafterpublish:=True

    End If
End With

Разбить его

Вы можете установить путь сохранения по умолчанию, используя .InitialFileName собственность.Если у вас есть имя файла по умолчанию, вы можете использовать его.В противном случае установите тип файла по умолчанию, используя *.pdf

.InitialFileName = "C:\Users\sravi\*.pdf"

Следующая строка служит двум целям:

  1. Показывает диалоговое окно с .Show

  2. Гарантирует, что пользователь принял местоположение сохранения с .Show = -1

If .Show = -1 Then

Затем, наконец, вы вернете свой файлпуть к методу, который вы используете с этой строкой:

Filename:=.SelectedItems(1)
0 голосов
/ 29 ноября 2018

Используйте метод Application.GetSaveAsFilename.Используйте возвращенное значение в качестве атрибута Filename, но перед сохранением убедитесь, что оно не равно False.

...