VBA编程-获取文件夹下面的文档名称

Sub GetDocNames()
    Dim folderPath As String
    Dim fso As Object
    Dim folder As Object
    Dim subFolder As Object
    Dim file As Object
    Dim ws As Worksheet
    Dim row As Long
    
    ' 弹出窗口选择文件夹
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show = -1 Then
            folderPath = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    ' 创建FileSystemObject对象
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 获取文件夹对象
    Set folder = fso.GetFolder(folderPath)
    
    ' 设置工作表和起始行
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 修改为你想要保存文档名称的工作表
    row = 1
    
    ' 遍历文件夹中的文件
    For Each file In folder.Files
        ' 如果是OFFICE文档或PDF文档
        If LCase(fso.GetExtensionName(file.Name)) Like "xls*" Or LCase(fso.GetExtensionName(file.Name)) = "pdf" Then
            ' 在工作表中保存文档名称
            ws.Cells(row, 1).Value = file.Name
            row = row + 1
        End If
    Next file
    
    ' 遍历子文件夹
    For Each subFolder In folder.Subfolders
        ' 递归调用自身处理子文件夹
        ProcessFolder subFolder, ws, row
    Next subFolder
    
    ' 释放对象
    Set subFolder = Nothing
    Set folder = Nothing
    Set fso = Nothing
End Sub

Sub ProcessFolder(folder As Object, ws As Worksheet, ByRef row As Long)
    Dim subFolder As Object
    Dim file As Object
    Dim fso As Object
    
    ' 创建FileSystemObject对象
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 遍历文件夹中的文件
    For Each file In folder.Files
        ' 如果是OFFICE文档或PDF文档
        If LCase(fso.GetExtensionName(file.Name)) Like "xls*" Or LCase(fso.GetExtensionName(file.Name)) = "pdf" Then
            ' 在工作表中保存文档名称
            ws.Cells(row, 1).Value = file.Name
            row = row + 1
        End If
    Next file
    
    ' 遍历子文件夹
    For Each subFolder In folder.Subfolders
        ' 递归调用自身处理子文件夹
        ProcessFolder subFolder, ws, row
    Next subFolder
    
    ' 释放对象
    Set subFolder = Nothing
    Set file = Nothing
    Set fso = Nothing
End Sub
 

此代码可以识别文件夹里面的文件夹一直到最后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值