Lösung für Datei-Durchsuchung
01.10.2006 21:29:26
frigo
letzte Woche habe ich ein Problem gepostet, auf das leider niemand eine Lösung hatte. Jetzt bin ich über MSDN auf eine ganz simple Lösung gekommen, die ich gerne weitergeben möchte.
Ich möchte aus Excel zahlreiche Zeichenketten im Inhalt von Dateien (doc, xls, ppt, pdf ...) in Laufwerksordnern suchen. (Wird eine Zeichenkette gefunden, dann soll der Link zur Datei neben der Zeichenkette erstellt werden.)
Ich hatte dies mit einer sequentiellen Dateieinlesung (open for input) realisiert.
Die hat zwar funktioniert, bei großen Dateien jedoch ewig gedauert.
Die einfache Lösung lautet Application.FileSearch.
Bei einer 64MB-Datei hat sich die Suchzeit von 5min auf 25Sek. reduziert.
With Application.FileSearch
.NewSearch
.LookIn = "C:\My Documents"
.SearchSubFolders = True
.FileName = "run"
.TextOrProperty = "mein Suchtext in Dateien"
.MatchAllWordForms = True
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With
Gruß,
frigo