ExcelVBA-Fso打开文件对话框取得文件夹中的一层目录列表

2022-10-25 13:44:26 浏览数 (2)

ExcelVBA-Fso打开文件对话框取得文件夹中的一层目录列表

有时候我们在工作时需要取得文件夹下面的第一层文件夹的目录列表,我们可以dos命令做成bat文件,生成一个txt文件,

也可以用以下的方法:VBA直接取出,我只要一层就可以啦,今天练习一下用做一个自定义的函数,把取得的列表返回到一个数组中,有时有用,这里做个记录吧

这里有两个代码常常用到,(1)打开文件对话框(2)取得列表并返回到数组中

Sub t()

' Dim arr() As String

With Application.FileDialog(msoFileDialogFolderPicker)

.Title = "请选择文件夹"

If .Show = -1 Then

pth = .SelectedItems(1)

arr = GetFolderList(pth)

Else

MsgBox "已取消操作!"

Exit Sub

End If

End With

[b1].Resize(UBound(arr) 1, 1) = Application.Transpose(arr)

End Sub

下面是一个自定义函数

Function GetFolderList(folderspec)

Dim fs, f, f1, fc, s

Dim temp_arr()

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.GetFolder(folderspec)

Set fc = f.SubFolders

ReDim Preserve temp_arr(fc.Count)

m= 0

For Each f1 In fc

temp_arr(m) = f1.Path

' s = s & f1.Name

' s = s & vbCrLf

m = m 1

Next

' MsgBox s

GetFolderList = temp_arr

End Function

====这是我的电脑中的一个文件夹“电脑教程”的列表====

====运行代码,列表取出来了=====

====今天就学习到此吧====

0 人点赞