jeje Reconozco ese código yo le puse lo del control de errores
On Local Error Resume Next<-----
            If (GetAttr(strDir & strEntry) And vbDirectory) Then
                If strEntry <> "." And strEntry <> ".." Then
                    strDirs = strDirs & strDir & strEntry & "\" & vbNullChar
                End If
            End If
            If Err Then Exit Do <---
            On Local Error GoTo 0 <----
            strEntry = Dir$
si checas el post de donde esta este código, veras que explicaba que generalmente en las carpetas de archivos temporales hay algunos nombres de archivos que tienen caracteres invalidos y es por eso que falla el programa, ahora se supone que con el control de errores no debería de interrumpirse la ejecución.
creo que se podrian hacer 2 cosas:
1-. Prueba borrando los archivos temporales de la pc donde falla y si asi vuelve a fallar habrá que ver en que linea esta el problema.
2.- El control de errores lo puse cuando se verifican nombres de archivos pero no los de las carpetas. lo que se me ocurre es esto:
Function PathTo(strFile As String) As String
    Dim x As Integer
    Dim strDirs As String
    Dim strDir As String
    Dim strEntry As String
    
    strDirs = "c:\" & vbNullChar
    Do While Len(strDirs)
        x = InStr(strDirs, vbNullChar)
        On local error resume next
        strDir = Left$(strDirs, x - 1)
        strDirs = Mid$(strDirs, x + 1)
        
        If Len(Dir$(strDir & strFile)) Then
            PathTo = strDir & Dir$(strDir & strFile)
            Exit Function
        End If
        'Obtiene el nombre de la carpeta
        strEntry = Dir$(strDir & "*.*", vbDirectory)
        
        'Si no es valido se genera un error, avisa del error y se sigue con el siguiente directorio
        If Err Then
            Msgbox "Nombre de carpeta no valido" 
            strEntry = Dir$
         end if
        Do While Len(strEntry)
                  If (GetAttr(strDir & strEntry) And vbDirectory) Then
                If strEntry <> "." And strEntry <> ".." Then
                    strDirs = strDirs & strDir & strEntry & "\" & vbNullChar
                End If
            End If
            'Si el nombre del archivo no es valido se genera error
            If Err Then msgbox "Nombre de archivo no valido"
            On Local Error GoTo 0
            strEntry = Dir$
        Loop
    Loop
    PathTo = ""
End Function
no tengo VB en esta pc pero creo que con eso detectaría los nombres no validos y seguiria con tu escaneo... espero te sirva de algo