【问题标题】:Select multiple folders - VBA选择多个文件夹 - VBA
【发布时间】:2017-07-25 12:00:11
【问题描述】:

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

两个问题:

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

代码块:

'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

现在我可以从以下文件夹中选择一个文件夹:

我想从更多这样的选择中选择:

【问题讨论】:

  • This 用于 Excel 文件。改成like "*.csv" 后就可以使用了。

标签: vba excel


【解决方案1】:

您可以使用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 

【讨论】:

  • 是的,谢谢它的工作。但现在我必须在文件夹中标记所有 csv 文件 :) 并且仍然只能占用一个文件夹,而不是更多
  • 所以你想让用户同时选择多个文件夹中的多个文件?不要认为这是可能的
  • @SkirmanteValentaite 根本不可能选择多个文件夹。即使同时选择两个文件夹也行不通。您可以在一个文件夹或一个文件夹中选择多个文件
  • 你能帮我编辑@FunThomas 宏以选择不是多个文件总线一个文件夹吗?我不擅长编写宏我只能从不同的块中组合一个宏:)
  • @SkirmanteValentaite 只是我们Application.FileDialog(msoFileDialogFolderPicker) 没有过滤器和没有AllowMultiSelect。显然您也不需要循环,因为在选择文件夹时只有一个选定项目.SelectedItems(1)。看我的回答。
【解决方案2】:

选择多个文件夹根本不可能。即使同时选择两个文件夹也不行。

您可以选择……

  • 多个文件一个文件夹中(见@FunThomas answer
  • 一个文件夹而已。

这里是选择一个文件夹的方法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 2016-08-30
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2018-11-08
    • 2014-11-18
    • 2011-09-23
    相关资源
    最近更新 更多