Vorrei scorrere i file di una directory utilizzando VBA in Excel 2010.
Nel ciclo, avrò bisogno di:
- il nome file e
- la data in cui il file è stato formattato.
Ho codificato quanto segue che funziona bene se la cartella non contiene più di 50 file, altrimenti è ridicolmente lenta (ne ho bisogno per funzionare con cartelle con> 10000 file). L'unico problema di questo codice è che l'operazione di ricerca file.name
richiede molto tempo.
Codice che funziona ma è troppo lento (15 secondi per 100 file):
Sub LoopThroughFiles()
Dim MyObj As Object, MySource As Object, file As Variant
Set MySource = MyObj.GetFolder("c:\testfolder\")
For Each file In MySource.Files
If InStr(file.name, "test") > 0 Then
MsgBox "found"
Exit Sub
End If
Next file
End Sub
Problema risolto:
- Il mio problema è stato risolto dalla soluzione seguente usando
Dir
in modo particolare (20 secondi per 15000 file) e per controllare il timestamp usando il comandoFileDateTime
. - Tenendo conto di un'altra risposta da sotto i 20 secondi vengono ridotti a meno di 1 secondo.
code
Set MyObj = New FileSystemObject
Object
.