Ich bekomme diesen Fehler, "Microsoft Excel wartet auf eine andere Anwendung eine OLE-Aktion abzuschließen" beim Versuch, eine PDF-String-Suche zu automatisieren und Ergebnisse in Excel aufzuzeichnen. Bei bestimmten PDFs wird dieser Fehler nicht angezeigt. Ich nehme an, dies liegt an den weniger optimierten PDFs, die eine längere Zeit benötigen, um eine Zeichenkette zu suchen, während Seite für Seite indexiert wird.Automatisierung von PDF String Suche mit Excel VBA - OLE-Fehler
Um genauer zu sein, habe ich eine Arbeitsmappe mit zwei Blättern. Einer enthält eine Liste von PDF-Dateinamen und der andere eine Liste von Wörtern, die ich durchsuchen möchte. Aus der Dateiliste würde das Makro jede PDF-Datei öffnen und jedes Wort aus der Liste der Wörter nehmen und eine Zeichenkettensuche durchführen. Wenn es gefunden wird, würde es jeden Fund in einem neuen Blatt in derselben Arbeitsmappe mit dem Dateinamen und der gefundenen Zeichenfolge aufzeichnen.
Unten ist der Code, mit dem ich kämpfe. Jede Hilfe ist willkommen.
Public Sub SearchWords()
'variables
Dim ps As Range
Dim fs As Range
Dim PList As Range
Dim FList As Range
Dim PLRow As Long
Dim FLRow As Long
Dim Tracker As Worksheet
Dim gapp As Object
Dim gAvDoc As Object
Dim gPDFPath As String
Dim sText As String 'String to search for
FLRow = ActiveWorkbook.Sheets("List Files").Range("B1").End(xlDown).Row
PLRow = ActiveWorkbook.Sheets("Prohibited Words").Range("A1").End(xlDown).Row
Set PList = ActiveWorkbook.Sheets("Prohibited Words").Range("A2:A" & PLRow)
Set FList = ActiveWorkbook.Sheets("List Files").Range("B2:B" & FLRow)
Set Tracker = ActiveWorkbook.Sheets("Tracker")
'For each PDF file list in Excel Range
For Each fs In FList
'Initialize Acrobat by creating App object
Set gapp = CreateObject("AcroExch.App")
'Set AVDoc object
Set gAvDoc = CreateObject("AcroExch.AVDoc")
'Set PDF file path to open in PDF
gPDFPath = fs.Cells.Value
' open the PDF
If gAvDoc.Open(gPDFPath, "") = True Then
'Bring the PDF to front
gAvDoc.BringToFront
'For each word list in the range
For Each ps In PList
'Assign String to search
sText = ps.Cells.Value
'This is where the error is appearing
If gAvDoc.FindText(sText, False, True, False) = True Then
'Record findings
Tracker.Range("A1").End(xlDown).Offset(1, 0) = fs.Cells.Offset(0, -1).Value
Tracker.Range("B1").End(xlDown).Offset(1, 0) = ps.Cells.Value
End If
Next
End If
'Message to display once the search is over for a particular PDF
MsgBox (fs.Cells.Offset(0, -1).Value & " assignment complete")
Next
gAvDoc.Close True
gapp.Exit
set gAVDoc = Nothing
set gapp = Nothing
End Sub
Bitte geben Sie Ihren Code im richtigen Format ein. –
Sorry, dass ... Ich bin neu auf dieser Seite. Kämpfte mit dem HTML –