Справочник по Acrobat Reader 2017: ПРОПУСК: Библиотека типов Adobe Acrobat XX.X - PullRequest
0 голосов
/ 16 ноября 2018

Я могу запустить следующий код, где у меня установлен Acrobat Reader 2017, а также Adobe Acrobat XI Pro и Distiller XI.

У меня есть другой компьютер без XI Pro или Distiller.

Первая проблема при открытии листа Excel:

Ошибка компиляции в скрытом модуле: xxxxx

Вторая проблема в ссылках, которые у меня есть

ПРОПУСК: Библиотека типов Adobe Acrobat 10.0

Я снимаю флажок и запускаю снова, затем я получаю ошибкина Set acroDoc = New AcroPDDoc

Я отмечаю, что в моем рабочем Excel есть лента «ACROBAT», в моем нерабочем Excel нет.

    Dim acroExchangeApp As Object
    Set app = CreateObject("Acroexch.app")

    Dim filePaths As Collection     'Paths for PDFS to append
    Set filePaths = New Collection
    Dim fileRows As Collection      'Row numbers PDFs to append
    Set fileRows = New Collection
    Dim sourceDoc As Object
    Dim primaryDoc As Object        ' PrimaryDoc is what we append too
    Dim insertPoint As Long         ' PDFs will be appended after this page in the primary Doc
    Dim startPage As Long           ' First desired page of appended PDF
    Dim endPage As Long             ' Last desired page of appended PDF
    Dim colIndex As Long            '
    Dim numPages As Long
    Dim acroDoc As Object
    Set acroDoc = New AcroPDDoc


    Set primaryDoc = CreateObject("AcroExch.PDDoc")
    OK = primaryDoc.Open(filePaths(1))
    Debug.Print "PRIMARY DOC OPENED & PDDOC SET: " & OK

    For colIndex = 2 To filePaths.count
        query_start_time = time()
        start_memory = GetWorkingMemoryUsage

        numPages = primaryDoc.GetNumPages() - 1

        Set sourceDoc = CreateObject("AcroExch.PDDoc")
        OK = sourceDoc.Open(filePaths(colIndex))
        Debug.Print "(" & colIndex & ") SOURCE DOC OPENED & PDDOC SET: " & OK


     numberOfPagesToInsert = sourceDoc.GetNumPages

        'inserts pages
        acroDoc.Open source_file_name

        insertPoint = acroDoc.GetNumPages - 1


        If endPage > 1 Then
            OK = primaryDoc.InsertPages(insertPoint, sourceDoc, startPage, endPage - startPage, False)
            Debug.Print "(" & colIndex & ") " & endPage - startPage & " PAGES INSERTED SUCCESSFULLY: " & OK
        Else
            OK = primaryDoc.InsertPages(insertPoint, sourceDoc, startPage, endPage - startPage + 1, False)
            Debug.Print "(" & colIndex & ") " & endPage - startPage + 1 & " PAGES INSERTED SUCCESSFULLY: " & OK
        End If


           Set sourceDoc = Nothing

    Next colIndex

    OK = primaryDoc.Save(PDSaveFull, filePaths(1))
    Debug.Print "PRIMARYDOC SAVED PROPERLY: " & OK

    Set primaryDoc = Nothing
    app.Exit
    Set app = Nothing

Последнее изменение:

Сначала я получаю

Ошибка компиляции, не удается найти проект или библиотеку

enter image description here

Итак, я снимаю флажок «MISSING: Adobe Acrobat 10.0 Type Library», который устраняет эту ошибку,

enter image description here

Теперь я получаю следующую ошибку после того, как яизменил ли это:

Set acroDoc = New AcroPDDoc на Set acroDoc = CreateObject("AcroExch.PDDoc")

и теперь получаю сообщение об ошибке на новой строке следующим образом:

enter image description here

enter image description here

1 Ответ

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

Вы в настоящее время смешиваете позднюю привязку к ранней привязке.Чтобы сделать ваш код переносимым между компьютерами, всегда используйте позднюю привязку.Это позволяет компьютеру находить библиотеку во время выполнения вместо жесткого связывания файла с файлом вручную на каждом ПК перед запуском кода.

ИЗМЕНИТЬ ЭТО:

Set acroDoc = New AcroPDDoc

К ЭТОМУ:

Set acroDoc = CreateObject("AcroExch.PDDoc")

ПРОЧИТАЙТЕ ЭТО: http://www.needforexcel.com/single-post/2015/10/09/Difference-Between-Early-Binding-Late-Binding

...