首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

访问VBA搜索文件夹和子文件夹并将结果追加到表中

,可以通过以下步骤实现:

  1. 创建一个Excel工作簿,并在其中创建一个表格,用于存储搜索结果。
  2. 打开Visual Basic for Applications(VBA)编辑器,可以通过按下Alt + F11快捷键来打开。
  3. 在VBA编辑器中,插入一个新的模块,可以通过点击“插入”菜单,然后选择“模块”来实现。
  4. 在新的模块中,编写以下VBA代码:
代码语言:vba
复制
Sub SearchFolders()
    Dim FolderPath As String
    Dim FileName As String
    Dim ws As Worksheet
    Dim i As Integer
    
    ' 设置文件夹路径
    FolderPath = "C:\YourFolderPath"
    
    ' 设置文件名
    FileName = "YourFileName"
    
    ' 设置工作表
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' 清空表格中的内容
    ws.Cells.ClearContents
    
    ' 设置表头
    ws.Cells(1, 1).Value = "文件路径"
    ws.Cells(1, 2).Value = "文件名"
    
    ' 初始化行数
    i = 2
    
    ' 调用搜索文件夹的函数
    SearchFiles FolderPath, FileName, ws, i
End Sub

Sub SearchFiles(ByVal FolderPath As String, ByVal FileName As String, ByRef ws As Worksheet, ByRef i As Integer)
    Dim SubFolder As Object
    Dim File As Object
    Dim SubFolderItems As Object
    Dim FileItems As Object
    
    ' 获取文件夹对象
    Set SubFolderItems = CreateObject("Scripting.FileSystemObject").GetFolder(FolderPath).SubFolders
    
    ' 遍历子文件夹
    For Each SubFolder In SubFolderItems
        ' 调用搜索文件夹的函数(递归)
        SearchFiles SubFolder.Path, FileName, ws, i
    Next SubFolder
    
    ' 获取文件对象
    Set FileItems = CreateObject("Scripting.FileSystemObject").GetFolder(FolderPath).Files
    
    ' 遍历文件
    For Each File In FileItems
        ' 判断文件名是否匹配
        If InStr(1, File.Name, FileName, vbTextCompare) > 0 Then
            ' 将结果追加到表格中
            ws.Cells(i, 1).Value = File.Path
            ws.Cells(i, 2).Value = File.Name
            i = i + 1
        End If
    Next File
End Sub
  1. 在代码中的FolderPath变量中设置要搜索的文件夹路径,FileName变量中设置要搜索的文件名,ws变量中设置要追加结果的工作表名称。
  2. 运行SearchFolders子过程,可以通过按下F5键来运行。
  3. 搜索结果将会追加到指定的工作表中,包括文件路径和文件名。

这个VBA代码可以递归地搜索指定文件夹及其子文件夹中的文件,并将匹配的文件路径和文件名追加到指定的Excel表格中。你可以根据实际需求修改代码中的文件夹路径、文件名和工作表名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券