选择多个文件夹-VBA
我正在使用宏将CSV文件合并为一个。 宏运行良好,但我有一个块,可以选择一个包含CSV文件的文件夹进行合并 两个问题:选择多个文件夹-VBA,vba,excel,Vba,Excel,我正在使用宏将CSV文件合并为一个。 宏运行良好,但我有一个块,可以选择一个包含CSV文件的文件夹进行合并 两个问题: 我可以选择多个文件夹进行合并吗?(在一个文件夹中,我有很多CSV文件。) 如何从中选择其他初始目录来选择文件夹?我需要使用服务器上的文件夹 代码块: 'Browse to the folder with CSV files Set oApp = CreateObject("Shell.Application") Set oFolder = oApp.BrowseForFolde
'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
“浏览到包含CSV文件的文件夹
设置oApp=CreateObject(“Shell.Application”)
文件夹集=oApp.BrowseForFolder(0,“选择包含CSV文件的文件夹”,512)
若并没有,那个么older什么都不是
foldername=oFolder.Self.Path
如果正确(foldername,1)“\”则
foldername=foldername&“\”
如果结束
现在我可以从以下文件夹中选择一个文件夹:
我很乐意从以下类似的选项中进行选择:
您可以使用
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
根本不可能选择多个文件夹。即使同时选择两个文件夹也不起作用
你可以选择
- 一个文件夹中有多个文件(请参见)
- 或仅一个文件夹李>
Public子选择文件夹()
将fdl设置为文件对话框
Set fdl=Application.FileDialog(msoFileDialogFolderPicker)
与fdl
.InitialFileName=“C:\Temp”'开始选择文件夹的位置
如果.Show-1那么
MsgBox“已取消”'未选择任何内容
其他的
Debug.Print.SelectedItems(1)'所选文件夹
如果结束
以
端接头
是的,谢谢,它正在工作。但现在我必须在文件夹中标记所有csv文件:),并且仍然只能使用一个文件夹,而不能使用更多。因此,您想允许用户同时在多个文件夹中选择多个文件吗?别以为这是真的possible@SkirmanteValentaite根本不可能选择多个文件夹。即使同时选择两个文件夹也不起作用。您可以在一个文件夹中选择多个文件,也可以仅在一个文件夹中选择多个文件。您能帮助我编辑@FunThomas macro以在一个文件夹中不选择多个文件吗?我不擅长编写宏,我只能从单独的块中组合一个宏:)@skirmantevalentite just-usApplication.FileDialog(msoFileDialogFolderPicker)
不带过滤器,也不带AllowMultiSelect
。显然,您也不需要循环,因为只有一个选定项。选择文件夹时,请选择编辑项(1)
。看看我的答案。是用于Excel文件的。更改为类似“*.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