VBA小程序--获取文件夹所有的xls 和 xlsx 文件列表(相对路径 + 绝对路径)

本文介绍如何使用VBA在Excel中批量读取指定目录下的所有.xls和.xlsx文件,并将文件名或完整路径写入当前工作表第一列。通过简单的VBA宏,可以轻松实现文件管理任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

返回相对路径(只有文件名)

Sub 获取文件列表()
    Dim m As Long, myFile
    MsgBox ("使用前请先查看路径是否需要变更,另外文件列表会写入当前活动工作表的第一列,确认请按Enter按键,取消请按Ctrl + PauseBaeak")
    mypath = "F:\每月例行-利润核算\"    '最后要加一个反斜杠,不然会认为是一个文件,而不是一个文件列表  嗯,应该是这样...
    myFile = Dir(mypath & "*.xls*")    '可以使用通配符,输出所有xls 和 xlsx 文件
    'Do Until Len(myfile) = 0 'Do until使用数组值变化,或者使用Do until =""
    'Do While myfile <> "" '或者使用 Do While <>""
    
    Do Until myFile = ""
        m = m + 1
        Cells(m, 1) = myFile    '会写入当前活动工作表的第一列 相对路径
        myFile = Dir
        'Debug.Print (Dir) '这句话如果添加监视器,或者输出,结果就会不对...果然是只可远观,不可..
    Loop
    
End Sub

返回绝对路径(路径 + 文件名)

Sub 获取文件列表()
    Dim m As Long, myFile
    MsgBox ("使用前请先查看路径是否需要变更,另外文件列表会写入当前活动工作表的第一列,确认请按Enter按键,取消请按Ctrl + PauseBaeak")
    mypath = "F:\每月例行-利润核算\"    '最后要加一个反斜杠,不然会认为是一个文件,而不是一个文件列表  嗯,应该是这样...
    myFile = Dir(mypath & "*.xls*")    '可以使用通配符,输出所有xls 和 xlsx 文件
    'Do Until Len(myfile) = 0 'Do until使用数组值变化,或者使用Do until =""
    'Do While myfile <> "" '或者使用 Do While <>""
    
    Do Until myFile = ""
        m = m + 1
        Cells(m, 1) = mypath & myFile    '会写入当前活动工作表的第一列 绝对路径
        myFile = Dir
        'Debug.Print (Dir) '这句话如果添加监视器,或者输出,结果就会不对...果然是只可远观,不可..
    Loop
    
End Sub

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值