2017-07-25 4 views
1

Ich verwende Makro, um CSV-Dateien zu einem zusammenführen. Makro funktioniert gut, aber ich habe einen Block, mit dem Sie einen Ordner mit CSV-Dateien zusammenführen können.Wählen Sie mehrere Ordner - VBA

Zwei Fragen:

  1. Kann ich mehr als einen Ordner wählen zu fusionieren? (In einem Ordner habe ich viele CSV-Dateien.).
  2. Wie kann A andere anfängliche Verzeichnis auswählen, aus denen die Ordner auswählen? Ich brauche Ordner vom Server.

Codeblock:

'Browse to the folder with CSV files 
Set oApp = CreateObject("Shell.Application") 
Set oFolder = oApp.BrowseForFolder(0, "Select folder with CSV files", 512) 
If Not oFolder Is Nothing Then 
    foldername = oFolder.Self.Path 
    If Right(foldername, 1) <> "\" Then 
     foldername = foldername & "\" 
    End If 

jetzt meine Verfügbarkeit einen Ordner zur Auswahl:

Not enough choice

Ich würde gerne von mehr so ​​wählen:

More choice

+0

[Dies] (https://stackoverflow.com/questions/45154354/how-to-loop-through-all-subfolders- und-Get-Inhalt-der-Zeile-1-von-jedem-Excel-Datei/45156109 # 45156109) ist für Excel-Datei. Nach Änderung zu "* .csv" können Sie verwenden. –

Antwort

1

Auswahl mehrere Ordner ist überhaupt nicht möglich. Selbst die Auswahl zwei Ordner zur gleichen Zeit wird nicht funktionieren. nur

Sie können wählen ...

Hier ist, wie ein Ordner auszuwählen:

Public Sub SelectFolder() 
    Dim fdl As FileDialog 

    Set fdl = Application.FileDialog(msoFileDialogFolderPicker) 
    With fdl 
     .InitialFileName = "C:\Temp" 'where we start choosing a folder 
     If .Show <> -1 Then 
      MsgBox "canceled" 'nothing was selected 
     Else 
      Debug.Print .SelectedItems(1) 'the selected folder 
     End If 
    End With 
End Sub 
1

Sie können Application.FileDialog verwenden. Dies ermöglicht es, den Ordner zu durchsuchen und Dateien auszuwählen.

Dim fileCount As Long 

' Open the file dialog 
With Application.FileDialog(msoFileDialogOpen) 
    .AllowMultiSelect = True 
    .Filters.Clear 
    .Filters.Add "CSV files", "*.csv" 
    .Show 

    For fileCount = 1 To .SelectedItems.Count 
     Debug.print .SelectedItems(fileCount) 
    Next fileCount 

End With 
+0

Ja, danke, dass es funktioniert. aber jetzt muss ich im Ordner alle CSV-Dateien markieren :) und kann immer noch nur einen Ordner, nicht mehr –

+0

So wollen Sie den Benutzer zu ermöglichen, mehrere Dateien in mehreren Ordnern auf einmal auswählen? Denken Sie nicht, dass dies möglich ist – FunThomas

+0

@SkirmanteValentaite die Auswahl mehrerer Ordner ist überhaupt nicht möglich. Das gleichzeitige Auswählen von zwei Ordnern funktioniert nicht. Sie können * mehrere Dateien * in * einem * Ordner ODER * nur * einem Ordner auswählen. –