Nuestros mejores programadores agotaron sus provisiones de café, por su búsqueda noche y día por la respuesta, hasta que Eliana encontró el arreglo en Gitea así que hoy la comparte aquí.
Solución:
Dir
acepta comodines, por lo que podría marcar una gran diferencia agregando el filtro para test
por adelantado y evitando probar cada archivo
Sub LoopThroughFiles()
Dim StrFile As String
StrFile = Dir("c:testfolder*test*")
Do While Len(StrFile) > 0
Debug.Print StrFile
StrFile = Dir
Loop
End Sub
Dir parece ser muy rápido.
Sub LoopThroughFiles()
Dim MyObj As Object, MySource As Object, file As Variant
file = Dir("c:testfolder")
While (file <> "")
If InStr(file, "test") > 0 Then
MsgBox "found " & file
Exit Sub
End If
file = Dir
Wend
End Sub
Aquí está mi interpretación como una función en su lugar:
'#######################################################################
'# LoopThroughFiles
'# Function to Loop through files in current directory and return filenames
'# Usage: LoopThroughFiles ActiveWorkbook.Path, "txt" 'inputDirectoryToScanForFile
'# https://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba
'#######################################################################
Function LoopThroughFiles(inputDirectoryToScanForFile, filenameCriteria) As String
Dim StrFile As String
'Debug.Print "in LoopThroughFiles. inputDirectoryToScanForFile: ", inputDirectoryToScanForFile
StrFile = Dir(inputDirectoryToScanForFile & "*" & filenameCriteria)
Do While Len(StrFile) > 0
Debug.Print StrFile
StrFile = Dir
Loop
End Function
Nos puedes añadir valor a nuestra información dando tu experiencia en las reseñas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)