打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel VBA遍历文件

休息日,无聊的上Excel Home看看有啥东东可学习,有啥问题能帮帮忙。看到很多帖子都是求助遍历特定文件夹下文件的实现方法。有朋友说03版Excel有FileSearch对象可以遍历文件夹下文件,07版中没有了FileSearch对象,不知如何遍历文件。我想03版能做的事,07版肯定能做啊,要不然不是倒退?于是搜寻一番,还真是取消了FileSearch对象啊!不过还有Scripting.FileSystemObject可以用,实现如下:

Sub main()
    Dim fs, fold, fls, fl
    Set fs = CreateObject('Scripting.FileSystemObject')
    Set fold = fs.getfolder(folderpath) 'folderpath指文件夹路径,string型,实践中自行替换
    Set fls = fold.Files
    For Each fl In fls
        If InStr(fl.Name, '.xls') <> 0 Then '避免打开非Excel文件
            Workbooks.Open fl.Path  '打开文件
            statements '处理代码
            Workbooks(fl.Name).Close Savechanges:=True  '关闭文件
        End If
    Next
End Sub

    而后又发现Excel VBA内置的Dir()函数同样也可以,实现如下:

Sub main()
  Dim nm As String
  nm = Dir(folderpath & '*.xls*') 'folderpath指文件夹路径,string型,实践中自行替换
  Do While Len(nm) <> 0
    Workbooks.Open folderpath & nm

    statements '处理代码

    Workbooks(nm).Close Savechanges:=True
    nm = Dir()
  Loop
End Sub

    总结,编程思想都OO化了,搞的人总想着有什么对象去解决问题,孰不知OO不是全部,它也只不过是结构化的封装。就以上两种实现而言,我认为Dir函数更加效率,因为它是内置的,无需去做外部引用,而且它可以使用通配符。另外,FSO模型包含在脚本类型库 (Scrrun.dll) 中,如果电脑中没有装载脚本类型库,则FSO不可用,但不可否认,FSO模型提供了一套完备的文件处理结构,使得编码更加简单直观。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA实用小程序72:遍历文件夹(和子文件夹)中的文件
Excel VBA 遍历*.xlsx文件的方法
ExcelVBA_047 跨多文件查成绩
三、文件系统对象FSO操作目录与文件
Excel VBA工作薄 5.2 批量合并工作薄起手式 批量打开工作薄
Excel VBA(宏)精简(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服