¿Recorrer los archivos en una carpeta usando VBA?
Me gustaría recorrer los archivos de un directorio usando vba en Excel 2010.
En el bucle, necesitaré
el nombre de archivo yla fecha en que se formateó el archivo. He codificado lo siguiente, que funciona bien si la carpeta no tiene más de 50 archivos, de lo contrario es ridículamente lento (necesito que funcione con carpetas con> 10000 archivos). El único problema de este código es que la operación para buscarfile.name
lleva mucho tiempo.
Code que funciona pero es muuuuuy lento (15 segundos por 100 archivos):
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 resuelto
Mi problema ha sido resuelto por la siguiente solución usandoDir
de una manera particular (20 segundos para 15000 archivos) y para verificar la marca de tiempo usando el comandoFileDateTime
.Teniendo en cuenta otra respuesta por debajo de los 20 segundos se reduce a menos de 1 segundo.