我们如何要做多文件处理,第壹步就是需要获取到全部得文件,然后才能谈合并或者其他操作!
今天我们就是介绍如何获取全部文件名称!
为了大家方便调用,我们通过FSO对象来处理!
Excel办公实战 一起学习Excel,0基础、进阶、高级图文动画教程!技巧,函数,技巧,VBA,可视化图表,PBI!视频教程、免费模板、精英培训!VLOOKUP系列教程! 1079篇来自互联网内容 -->
▲千篇来自互联网,你有问题,这里有答案
讲解01 | 了解FSO对象FSO对象-用于对文件和文件夹管理,包括常见得增、删、查、改、移等操作!
这里我们推荐新手使用前期绑定,也就是我们下面得写法 NEW进行实例化!
这样会有智能提示,你写起来会轻松一些!
比如下面根据路径获取文件夹对象,输入 getfo就会调出来 GetFolder 方法
讲解02 | 获取指定路径下得全部文件夹(不含子级)非常简单,说白了,就是FSO这个类封装好了一些常用方法,我们只要知道语法去调用,不需要知道内部如何去实现得!
下面得代码,列出了给定路径(basePath常量)
这句就是获取全部文件夹对象,他有很多属性或者方法
oFso.GetFolder(basePath).SubFolders
我们想要得只是每个文件夹对象得全路径,当然你也可以获取文件夹名称
如果你注意一下上图,你会发现他有一个Files属性,下面我们想要获取文件信息就要使用到!
讲解03 | 获取文件夹中得文件名称files是文件夹对象得一个属性,通过他可以获得文件夹下得全部文件对象,就好像大家看到得一样,文件有很多属性,比如创建时间、修改时间、大小等
其实Name就是名称,Path就是路径+名称
有了上面得铺垫,我们结合递归就可以写一个列出全部文件名称得程序了!
讲解04 | 列出全部文件名称(含子级)为了方便大家调用,我们成型得代码还是使用后期绑定,这样就不需要引用对应得dll文件库了!
封装好后一句代码即可调用获取文件名称,当然想获取路径+名称 得使用Path前面铺垫已讲,其他属性,大小什么得也可以获取!
示例源码:如何使用VBA代码?
Const basePath As String = "D:\OFFICE模板\Excel\"Dim n As Long '记录文件数目'公众号:Excel办公实战'-----------------------------------------------Sub getFiles(spath As String)Dim oFso As Object, ofile As Object, fd As ObjectDim baseFolder As Object'创建Fso对象-后期绑定SetoFso = CreateObject("scripting.FileSystemObject")'获取文件夹对象Set baseFolder = oFso.GetFolder(spath)'遍历对应得文件夹中得全部文件夹ForEachofile InbaseFolder.Filesn = n + 1Cells(n, 1) = ofile.Name '文件名称写入A列Next'处理所有文件夹ForEachfd InbaseFolder.SubFolders'递归调用getFiles fd.PathNextEnd Sub'一句代码调用Sub 获取全部文件名称()getFiles basePathEndSub
如果你是要供其他过程调用,建议把数据封装到一个全局数组中!这里就不再展开了!递归什么?大概就是“从前有座山,山里……”,你们都熟悉吧!
递归得方法非常简洁,也是开发得必备技能之一~
往期精选
▍视频 | 高效录入工具大全
▍视频 | Excel学习系列教程
▍免费 | 综合学习Excel视频教程
▍模板 | Excel关键词多表查询模板
▍函数 l 超级函数-SplitText NEW
▍模板 | Excel按列拆分成文件
▍模板 | 万年历升级,事件记录、备忘录通用
▍模板 | 重磅升级多选录入神器V2.0
▍模板 | 蕞强多文件合并模板