Excel VBA用户定义的类型未定义找不到引用

时间:2019-03-13 16:57:26

标签: excel vba reference

我从其他来源提取了代码,尝试在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 for Applications”;
  •   
  • “ Microsoft Excel 14.0对象库”;
  •   
  • “ OLE自动化”;
  •   
  • “ Microsoft Office 14.0对象库”;
  •   
  • “ Adob​​e Acrobat浏览器控件类型库1.0”;
  •   
  • “ Adob​​e Reader文件预览类型库”;
  •   
  • 'Attachmate_Reflection_Objects';
  •   
  • 'Attachmate_Reflection_Objects_Emulation_IbmHosts';
  •   
  • 'Attachmate_Reflection_Objects_Emulation_OpenSystems';
  •   
  • 'Attachmate_Reflection_Objects_Framework';
  •   
  • “ Acrobat Access 3.0类型库”; 'AcroBrokerLib';
  •   
  • “ Active DS类型库”;
  •   
  • “ Microsoft ActiveX数据对象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

0 个答案:

没有答案