首页 > 解决方案 > 我可以从文档中更改保存为目的地,以便我收到一个选择目的地的弹出窗口吗?

问题描述

目前以下编码正在工作,但它会自动保存在代码中定义的文件夹中。

Private Sub CommandButton2_Click()

' Button PDF '

    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
    "\\Desktop\Test_PDF.pdf", ExportFormat:= _
    wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
    wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=2, To:=7, Item:= _
    wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
    CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
    BitmapMissingFonts:=True, UseISO19005_1:=False

End Sub

我想更改可以选择保存目的地的代码,所以如果我按下按钮,我会收到一个弹出窗口。

标签: pdfms-wordexport-to-pdfwordtopdf

解决方案


例如:

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Dim strFolder As String, strFile As String, strTxt As String
strFolder = GetFolder
If strFolder = "" Then
  MsgBox "No Save Folder Selected!", vbCritical
  Exit Sub
Else
ActiveDocument.ExportAsFixedFormat _
  OutputFileName:=strFolder & "\Test_PDF.pdf", ExportFormat:=wdExportFormatPDF, _
    OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, _
    Range:=wdExportFromTo, From:=2, To:=7, Item:=wdExportDocumentContent, _
    IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:=wdExportCreateNoBookmarks, _
    DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=False
End If
Application.ScreenUpdating = True
End Sub

Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose the folder to save in", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
End Function

推荐阅读