Excel VBA Определяемый пользователем тип не определен, не может найти ссылку - PullRequest
0 голосов
/ 13 марта 2019

Я извлек код из другого источника, чтобы попытаться найти определенную строку в файле PDF.(источник кода) https://acrobatusers.com/forum/general-acrobat-topics/search-text-pdf-vba-only-adobe-reader-installed/.Я попробовал этот источник, потому что у меня нет Adobe Professional, и из-за состояния моей компании подобные запросы могут обрабатываться как минимум один месяц - и все еще могут быть отклонены.Поэтому я должен попытаться сделать это без Adobe Professional.

На данный момент, когда я пытаюсь запустить / протестировать этот код, он возвращает ошибку

"Ошибка компиляции:Определяемый пользователем тип не определен "

, и он выделяет часть кода Dim gAvDoc As Acrobat.AcroAVDoc.Что подсказывает мне, что я что-то упустил в ссылке.Я попытался выбрать похожие ссылки, но безуспешно.

Может кто-нибудь дать мне знать, если проблема в пропущенной ссылке?Если да, то какую ссылку мне нужно выбрать, чтобы заставить код работать.Вот ссылки, которые я сейчас проверил:

  • 'Visual Basic для приложений';
  • «Библиотека объектов Microsoft Excel 14.0»;
  • 'OLE Automation';
  • «Библиотека объектов Microsoft Office 14.0»;
  • 'Библиотека типов элементов управления браузера Adobe Acrobat 1.0';
  • 'Библиотека типов предварительного просмотра файлов Adobe Reader';
  • 'Attachmate_Reflection_Objects';
  • 'Attachmate_Reflection_Objects_Emulation_IbmHosts';
  • 'Attachmate_Reflection_Objects_Emulation_OpenSystems';
  • 'Attachmate_Reflection_Objects_Framework';
  • 'Библиотека типов Acrobat Access 3.0';'AcroBrokerLib';
  • «Библиотека активных типов DS»;
  • «Библиотека Microsoft ActiveX Data Objects 2.0»;
  • «Библиотека данных Microsoft ActiveX (многомерная) 6.0»

Я также работаю под управлением Windows 10 с Microsoft Excel 2010

Option Explicit

Sub SearchPDF_forString()

    Dim gAvDoc As Acrobat.AcroAVDoc                'Robby change, "Acrobat.AcroAVDoc" to "Object"
    Dim gPDFPath As String
    Dim foundText As Integer            'Holds return value from "FindText" method
    Dim Rsp 'For message box responses
    Dim sText As String                 'Robby Addition
    Dim sStr As String                  'Robby Addition
    Dim resp As String                  'Robby Addition

    gPDFPath = "\\DTCHYB-MNMH001\C_WBGCTS_Users\U658984\My Documents\QC_random\DuplicateFormProject_ForKevin\1099DALL_1.pdf"

    'set AVDoc object for searching
    Set gAvDoc = CreateObject("AcroExch.AVDoc")

    If gAvDoc.Open(gPDFPath, "") Then
        sText = "041-3600122117"
        'FindText params: StringToSearchFor, caseSensitive (1 or 0), WholeWords (1 or 0), ResetSearchToBeginOfDocument (1 or 0)
        foundText = gAvDoc.FindText(sText, 1, 0, 1) 'Returns -1 if found, 0 otherwise
    Else
        ' if failed, show error message
        Rsp = MsgBox("Cannot open" & gPDFPath, vbOKOnly)
    End If

    If foundText = -1 Then
        'compose a message
        sStr = "Found " & sText
        resp = MsgBox(sStr, vbOKOnly)
    Else
        ' if failed, show error message
        resp = MsgBox("Cannot find" & sText, vbOKOnly)
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...