如何使用VBA(Excel宏)获得文件列表,包括子文件夹,以及文件夹的列表。


出版日期:2022年7月12日。



INFOMARTION > 如何使用VBA(Excel宏)获得文件列表,包括子文件夹,以及文件夹的列表。

概述。

我想描述一下如何使用VBA(Excel宏)获得一个文件列表和一个文件夹列表,包括子文件夹。 这篇文章的目的是为那些想要编排以下任务的人准备的

  • 我想获得一个文件夹下的所有文件或文件夹的列表,以及它们的完整路径。
  • 你想对一个文件夹下的文件或文件夹进行循环处理。

目录

  1. 编程方法
  2. 代码描述。
  3. 摘要

1. 编程方法

以下是编程的参考例子。

由于它是在Function中创建的,我想把它原样复制过来,并从Sub中调用方法。

'Parameter Examples
'## filePath      C:\Users\user\Desktop\test\
'## kind          false:folder, true:file
'## list
Function getFolderOrFile(filePath As String, kind As Boolean, list As Collection) As Collection
 
'delete\
Dim filePathEnd As String
filePathEnd = Right(filePath, 1)
If filePathEnd = "\" Then
  filePath = Left(filePath, Len(filePath) - 1)
End If
 
'Folder existence check
Dim result As String
result = Dir(filePath, vbDirectory)
If result = "" Then
  MsgBox "File does not exist!"
  Exit Function
End If
 
If kind Then
  Dim buf As String
  buf = Dir(filePath & "\*.*")
  Do While buf <> ""
    list.Add filePath & "\" & buf
    buf = Dir()
  Loop
Else
  list.Add filePath
End If
 
Dim folder As Object
With CreateObject("Scripting.FileSystemObject")
  For Each folder In .GetFolder(filePath).SubFolders
    getFolderOrFile folder.Path, kind, list
  Next folder
End With
 
End Function

要使用它,请将以下内容作为参数传递。

  • filePath・・・目录。 例子。)C:\Users\user\Desktop\test
  • kind・・・传真,传假。 如果为真,则返回一个文件列表。 如果是false,返回一个文件夹列表。
  • list・・・该集合用于存储结果。 下面是一个实施的例子。

下面是一个实际函数调用的实现例子。

Sub test()
 
Dim list As Collection
Set list = New Collection
getFolderOrFile "C:\Users\user\Desktop\test", False, list
Dim item As Variant
For Each item In list
  '------TODO------
  ThisWorkbook.Worksheets(1).Cells(1, 1).Value = item
Next
 
End Sub

调用getFolderOrFile将在列表中存储一个文件或一个文件夹列表。 实施例是假的,所以文件夹的列表被存储。

在For语句的 "TODO "部分描述你想做的过程。 ITEM可以被视为一个字符串变量。

参考来源是在Excel中把获得的列表设置为A1的过程。 (这个过程会重复覆盖同一个单元。)

2. 代码描述。

关于如何使用该系统的说明到此为止,接下来是对代码的解释。

细节可以在代码中看到,但关键点在于getFolderOrFile方法中对getFolderOrFile的进一步调用。

在搜索文件夹的过程中,通过调用搜索文件夹的过程,进一步重复这一过程,这是一种搜索所有文件夹的机制。

通过调用自己的方法,只要找到文件夹,它就反复调用自己的方法,搜索所有的文件夹。

3. 摘要

如果你需要帮助了解如何使用VBA(Excel宏)获得文件列表和文件夹列表,包括子文件夹,请参考本节。

谢谢你一直看到最后。




■INFORMATION

请点击这里,进入信息首页。


■PROFILE

请点击这里查看简介。


■联系方式。

有关文章的查询,请在此与我们联系。