VBA如何遍历文件夹下面的所有文件

这个博客分享了三个VBA代码版本,用于遍历指定文件夹下的所有文件,但不包括当前工作簿。第一版快速列出所有文件,第二版增加了排除当前工作簿的功能,第三版则将文件路径存储为字符串并提供了一个函数来拆分和打印这些路径。这些代码适用于需要在Excel中自动化处理文件列表的场景。

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

1 极速版

sub getFolderFiles()
    ' 获取当前文件夹所有文件
    Folder   = "D:\OneDrive\桌面\test\"
    Filename = Dir(Folder)
    While Filename <> ""
        Debug.Print Filename
        Filename = Dir
    Wend
End sub

2 不包含当前文件版

sub getFolderFiles()
    ' 获取当前文件夹所有文件
    Folder   = "D:\OneDrive\桌面\test\"
    Filename = Dir(Folder)
    While Filename <> ""
    	if Filename <> ThisWorkbook.Name Then
	        Debug.Print Filename
	        Filename = Dir
	    end if
    Wend
End sub

3 函数版

不能返回数组,所以多加一步,数组变成字符返回,然后在调用处拆分为数组

Function getCurFiles()
    ' 获取当前文件夹所有文件
    Dim Folder$, Filename$, Filepath$, filepaths(), arrCount%
    Folder   = "D:\OneDrive\桌面\隽悦雅苑\"
    Filename = Dir(Folder)
    While Filename <> ""
        If Filename <> ThisWorkbook.Name Then
            ReDim Preserve filepaths(0 To arrCount)
            Filepath = Folder + Filename
            filepaths(arrCount) = Filepath
            arrCount = arrCount + 1
        End If
        Filename = Dir
    Wend
    getCurFiles = Join(filepaths, "|") 
End Function

第3个的使用案例

Sub test()
	Dim arr,a,file$
	file = getCurFiles
	arr  = Split(file,"|")
	For Each a in arr
		Debug.Print a	
	Next
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但老师

要是看起来爽 求打赏一耳光

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值