You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求修改VBA代码以统计子文件夹内分类文件夹的文件数量

扩展VBA代码:统计次级分类文件夹的文件数量

以下是修改后的代码,可统计父目录下子文件夹及其内部按扩展名分类的次级文件夹的文件数量,并输出到Excel工作表中:

Sub ListSubfoldersWithSubcategories()
    ' 定义目标父目录路径
    Const FolderPath As String = "E:\2022\"
 
    ' 初始化文件系统对象
    Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
    ' 检查目标目录是否存在
    If Not fso.FolderExists(FolderPath) Then
        MsgBox "目录 """ & FolderPath & """不存在。", vbCritical
        Exit Sub
    End If
    Dim parentFolder As Object: Set parentFolder = fso.GetFolder(FolderPath)

    ' 定位输出的起始单元格(当前工作表最后一行的下一行A列)
    If ActiveSheet Is Nothing Or Not TypeOf ActiveSheet Is Worksheet Then
        MsgBox "请确保有可见的工作表处于激活状态。", vbExclamation
        Exit Sub
    End If
    Dim ws As Worksheet: Set ws = ActiveSheet
    Dim outputCell As Range
    Set outputCell = ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1)

    ' 写入父目录信息(可选,不需要可注释掉)
    outputCell.Value = parentFolder.Name
    outputCell.Offset(, 1).Value = "父目录总文件数"
    outputCell.Offset(, 2).Value = parentFolder.Files.Count
    Set outputCell = outputCell.Offset(1) ' 下移一行开始写入子目录信息

    ' 遍历所有子文件夹
    Dim subFolder As Object
    For Each subFolder In parentFolder.SubFolders
        ' 写入子文件夹名称
        outputCell.Value = subFolder.Name
        ' 遍历该子文件夹下的次级分类文件夹
        Dim categoryFolder As Object
        For Each categoryFolder In subFolder.SubFolders
            outputCell.Offset(, 1).Value = categoryFolder.Name
            outputCell.Offset(, 2).Value = categoryFolder.Files.Count
            Set outputCell = outputCell.Offset(1) ' 下移一行处理下一个分类文件夹
        Next categoryFolder
        ' 如果子文件夹下没有次级分类文件夹,也记录文件数
        If subFolder.SubFolders.Count = 0 Then
            outputCell.Offset(, 1).Value = "无分类文件夹"
            outputCell.Offset(, 2).Value = subFolder.Files.Count
            Set outputCell = outputCell.Offset(1)
        End If
    Next subFolder
 
    MsgBox "统计完成!", vbInformation
End Sub

代码说明

  • 路径配置:修改FolderPath常量为你的目标父目录路径
  • 输出格式:
    • A列:子文件夹名称
    • B列:次级分类文件夹名称(或“无分类文件夹”)
    • C列:对应文件夹内的文件数量
  • 容错处理:增加了对无次级分类文件夹的子目录的处理,同时检查工作表激活状态
  • 可选部分:父目录信息的写入可以根据需求注释掉,注释后记得调整起始输出位置

内容的提问来源于stack exchange,提问作者Salman Shafi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:15:42