2016-03-31 5 views
1

Ich habe eine Funktion, die den Benutzer fragt, wählen Sie einen Ordner und dann einen anderen, der alle Dateinamen in diesem Ordner ausgeben soll. Ich habe Folgendes versucht, aber es funktioniert nicht, da die Ordneradresse Leerzeichen enthält. Kannst du bitte helfen?VBA - Schleife Ordner mit Leerzeichen Adresse

'gets folder address 
recsFolder = Functions.GetFolder("C:\") 

'Loop through files in folder 
Dim StrFile As String 
StrFile = Dir(recsFolder) 
Do While Len(StrFile) > 0 
    Debug.Print StrFile 
    StrFile = Dir 
Loop 

Vielen Dank!

Edit: Code GetFolder

Function GetFolder(strPath As String) As String 
    Dim fldr As FileDialog 
    Dim sItem As String 
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker) 
    With fldr 
     .Title = "Select a Folder" 
     .AllowMultiSelect = False 
     .InitialFileName = strPath 
     If .Show <> -1 Then GoTo NextCode 
     sItem = .SelectedItems(1) 
    End With 
    NextCode: 
    GetFolder = sItem 
    Set fldr = Nothing 
End Function 

durch Leerzeichen I Räume bedeuten, die in der Adresse vorhanden sind (dh zwischen Tages- und Zusammenfassung) C: \ Benutzer \ User1 \ Desktop \ Tägliche Zusammenfassung

+1

Was der Code für die 'GetFolder' Funktion ist? und was sind "Leerzeichen"? –

+0

@MacroMan siehe bitte den bearbeiteten Post – peetman

Antwort

0

ändern

StrFile = Dir(recsFolder) 

Um

StrFile = Dir(recsFolder & "\*.*") 
+0

toll, es hat funktioniert! Vielen Dank – peetman

1

Sie müssen Dir() mit einem Dateimuster angeben, um Dateien aufzulisten.

Wechseln zu:

StrFile = Dir$(recsFolder & "\*.*") 
+0

Prost, es hat auch funktioniert. Was ist der Zweck des $ nach dem Dir? – peetman

+0

UV für eigentlich erklären * warum * es funktioniert. –

+0

Siehe [vba: was macht $?] (Http://stackoverflow.com/questions/3389444/vba-what-does-do) –

Verwandte Themen