选择多个文件夹 - VBA

问题描述:

我正在使用宏将CSV文件合并为一个。 宏运行良好,但我有一个块,它允许选择一个CSV文件的文件夹进行合并。选择多个文件夹 - VBA

两个问题:

  1. 我可以选择多个文件夹更多的合并吗? (在一个文件夹中,我有很多CSV文件。)。
  2. 如何从其中选择文件夹的其他初始目录?我需要从服务器使用文件夹。

代码块:

'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 

现在我的可用性可供选择一个文件夹:

Not enough choice

我很想从多个这样的选择:

More choice

+0

[这](https://stackoverflow.com/questions/45154354/how-to-loop-through-all-subfolders-和每个excel-file-45156109#45156109)的行内容为excell文件。更改为像“* .csv”之后,您可以使用。 –

选择多个文件夹是根本不可能的。即使选择两个文件夹在同一时间将无法正常工作。

您可以选择...

下面是如何选择一个文件夹:

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 

您可以使用Application.FileDialog。这允许浏览文件夹并选择文件。

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

是的,谢谢它的工作。但现在我必须在文件夹中标记所有csv文件:)并且仍然可以只采用一个文件夹,而不是更多 –

+0

因此,您希望允许用户一次选择多个文件夹中的多个文件?不要认为这是可能的 – FunThomas

+0

@SkirmanteValentaite选择多个文件夹是不可能的。即使同时选择两个文件夹也不起作用。您只能在*一个*文件夹或*一个*文件夹中选择*多个文件*。 –