Экранные оповещения в Acrobat с остановкой кода VBA - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть этот код VBA, который ищет файлы PDF на моем компьютере.Вот код:

Option Explicit

Sub FindTextInPDF()


    Dim TextToFind  As String
    Dim PDFPath     As String
    Dim App         As Object
    Dim AVDoc       As Object
    Dim DS As Worksheet
    Dim SS As Worksheet
    Set DS = Sheets("Report")
    Set SS = Sheets("Search Index")
    Dim sslastrow As Long
    Dim dslastrow As Long
    Dim b As Integer
    Dim J As Integer


    With SS
        sslastrow = .Cells(.Rows.Count, "B").End(xlUp).Row
    End With

    With DS
        dslastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With

    For b = 2 To dslastrow
    PDFPath = "C:\Users\desposito\Documents\Temp\" & 
    Sheets("Report").Range("E" & b).Value & Sheets("Report").Range("B" & 
    b).Value & ".pdf"

    If Dir(PDFPath) = "" Then
        GoTo nextb
    End If

    If LCase(Right(PDFPath, 3)) <> "pdf" Then
        GoTo nextb

    End If

    On Error Resume Next

    Set App = CreateObject("AcroExch.App")

    If Err.Number <> 0 Then

        Set App = Nothing
        GoTo nextb
    End If

    Set AVDoc = CreateObject("AcroExch.AVDoc")

    If Err.Number <> 0 Then

        Set AVDoc = Nothing
        Set App = Nothing
        GoTo nextb
    End If

   On Error GoTo 0

    If AVDoc.Open(PDFPath, "") = True Then

        AVDoc.BringToFront

        Else

        App.Exit

        Set AVDoc = Nothing
        Set App = Nothing

        GoTo nextb

    End If

    For J = 2 To sslastrow
    TextToFind = SS.Range("B" & J).Value


    If AVDoc.FindText(TextToFind, False, False, True) = False Then
        GoTo NextJ
        Else:
        DS.Range("Q" & b).Value = DS.Range("Q" & b).Value & TextToFind & ";"                                 
        & " "  

    End If
    NextJ:
           Next

            AVDoc.Close True


            App.Exit


            Set AVDoc = Nothing
            Set App = Nothing

nextb:

Next

End Sub

Однако, после каждых 100-ых файлов я получу это уведомление:

"Читатель завершил поиск документа. Совпадений не найдено."

Все, что мне нужно сделать, это нажать ввод, и затем код будет работать еще 10-30 минут, прежде чем я получу уведомление снова.Кажется, что это происходит случайно во время поиска в документе, который является частью кода:

    For J = 2 To sslastrow
TextToFind = SS.Range("B" & J).Value


If AVDoc.FindText(TextToFind, False, False, True) = False Then
    GoTo NextJ
    Else:
    DS.Range("Q" & b).Value = DS.Range("Q" & b).Value & TextToFind & ";"                                 
    & " "

End If
NextJ:

Я смотрел на отключение экранных предупреждений в acrobat, но это не похоже на то, что я могу сделатьчто.

...