Использование VBA как вызвать функцию Adobe Create PDF

  Sheets("Key Indicators").ExportAsFixedFormat Type:=xlTypePDF,
 Filename:=ArchivePath, Quality:=xlQualityStandard,
 IncludeDocProperties:=True, IgnorePrintAreas _
         :=False, OpenAfterPublish:=False

в настоящее время это то, что у меня есть.

Я понимаю, как ExportAsFixedFormat PDF, но мне нужно знать, как сделать, это получить доступ к функции Create PDF в Acrobat (как показано на рисунке ниже) с помощью VBA. Если я делаю ExportAsFixedFormat, ссылки становятся сплющенными. Acrobat "Create PDF" позволит мне конвертировать Excel в PDF с включенными гиперссылками.

AdobePDFMakerForOffice

Как бы я это сделал?

Я использую Excel 2016 и Adobe Pro DC

enter image description here Это мои ссылки adobe

4 ответов


ссылка Acrobat должна работать
вот руководство от Adobe
После добавления, вы можете использовать следующий код Совет: это может привести вас к правильному кодированию-я не совсем уверен, так как я закодировал его "вслепую", потому что у меня нет Acrobat на моем ПК. Отлаживать шаг за шагом, чтобы увидеть, что делает.

Sub ExportWithAcrobat()
Dim AcroApp As Acrobat.CAcroApp 'I'm not quite sure it's needed since we are creating the doc directly
Dim AcrobatDoc As Acrobat.CAcroPDDoc
Dim numPages As Long
Dim WorkSheetToPDF As Worksheet
Const SaveFilePath = "C:\temp\MergedFile.pdf"
    Set AcroApp = CreateObject("AcroExch.App") 'I'm not quite sure it's needed since we are creating the doc directly
    Set AcrobatDoc = CreateObject("AcroExch.PDDoc")
    'it's going to be 0 at first since we just created
    numPages = AcrobatDoc.GetNumPages
    For Each WorkSheetToPDF In ActiveWorkbook.Worksheets
    If AcrobatDoc.InsertPages(numPages - 1, WorkSheetToPDF, 0, AcrobatDoc.GetNumPages(), True) = False Then 'you should be available to work with the code to see how to insert the sheets that you want in the created object ' 1. If Part1Document.InsertPages(numPages - 1, "ExcelSheet?", 0, AcrobatDoc.GetNumPages(), True) = False
    MsgBox "Cannot insert pages" & numPages
    Else ' 1. If Part1Document.InsertPages(numPages - 1, "ExcelSheet?", 0, AcrobatDoc.GetNumPages(), True) = False
    numPages = numPages + 1
    End If ' 1. If Part1Document.InsertPages(numPages - 1, "ExcelSheet?", 0, AcrobatDoc.GetNumPages(), True) = False
    Next WorkSheetToPDF
    If AcrobatDoc.Save(PDSaveFull, SaveFilePath) = False Then ' 2. If Part1Document.Save(PDSaveFull, "C:\temp\MergedFile.pdf") = False
    MsgBox "Cannot save the modified document"
    End If ' 2. If Part1Document.Save(PDSaveFull, "C:\temp\MergedFile.pdf") = False
End Sub

следующие страницы могут обеспечить лучшую помощь:link1 и, Link2


Sub PDF()
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\PCNAME\Documents\Book1.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    True
End Sub

пожалуйста, попробуйте вышеуказанные коды


With ActiveSheet
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:="N:\JKDJKDJ", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True,  
    IgnorePrintAreas:=False, OpenAfterPublish:=False
End With

вы можете опубликовать любой диапазон Excel в формате PDF с помощью ExportAsFixedFormat. Нет необходимости устанавливать ссылку на Acrobat.

' Usage:
' PublishRangePDF(Thisworkbook, fileName) : Will Publish the entire Workbook
' PublishRangePDF(AvtiveSheet, fileName) : Will Publish all selected worksheets
' PublishRangePDF(Range("A1:H100"), fileName) : Will Publish Range("A1:H100")


Sub PublishRangePDF(RangeObject As Object, fileName As String, Optional OpenAfterPublish As Boolean = False)
    On Error Resume Next
    RangeObject.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=OpenAfterPublish
    On Error GoTo 0
End Sub