返回
如何使用 VBA 快速提取文件夹内所有文件名
Excel技巧
2023-12-25 03:27:05
在日常办公中,我们经常需要对文件夹中的文件进行管理,例如提取文件名、统计文件数量、复制或移动文件等。如果文件夹中包含大量文件,手动提取文件名可能会非常耗时。此时,我们可以借助 VBA 来快速完成此任务。
下面我们将介绍如何使用 VBA 提取文件夹内所有文件名,包括子文件夹内的文件。
首先,我们需要创建一个新的 VBA 模块。在 Excel 中,您可以通过以下步骤创建 VBA 模块:
- 按下 Alt+F11 快捷键打开 VBA 编辑器。
- 在菜单栏中,单击“插入”>“模块”。
接下来,我们将编写 VBA 代码来提取文件夹内所有文件名。代码如下:
Sub GetFilesInFolder(folderPath As String)
Dim files As New Collection
GetFilesInFolderRecursive files, folderPath
For i = 1 To files.Count
Debug.Print files(i)
Next i
End Sub
Sub GetFilesInFolderRecursive(files As Collection, folderPath As String)
Dim fso As New FileSystemObject
Dim folder As Folder
Dim file As File
Dim subfolder As Folder
Set folder = fso.GetFolder(folderPath)
For Each file In folder.Files
files.Add file.Name
Next file
For Each subfolder In folder.SubFolders
GetFilesInFolderRecursive files, subfolder.Path
Next subfolder
End Sub
在上面的代码中,我们定义了一个名为 GetFilesInFolder 的子过程,该子过程接受一个文件夹路径作为参数,并返回该文件夹内所有文件的文件名。
我们还定义了一个名为 GetFilesInFolderRecursive 的子过程,该子过程使用递归的方式来遍历文件夹内的所有子文件夹,并提取所有文件的文件名。
要使用上面的代码,您可以执行以下步骤:
- 将上面的代码复制到 VBA 模块中。
- 在 Sub GetFilesInFolder 子过程的 folderPath 参数中指定要提取文件名的文件夹路径。
- 按下 F5 快捷键运行代码。
代码运行后,所有文件名将输出到 VBA 编辑器的立即窗口中。
希望本文对您有所帮助。如果您有任何问题,请随时提问。