Я извлек код из другого источника, чтобы попытаться найти определенную строку в файле 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