休息日,无聊的上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模型提供了一套完备的文件处理结构,使得编码更加简单直观。

转载于:https://www.cnblogs.com/Nina-piaoye/archive/2013/04/09/3010280.html

Excel VBA遍历文件相关推荐

  1. Excel VBA 移动文件和文件夹

    之前有博主的方法,然后觉得可以1和2结合一下,所以试试看. 先放上Excel VBA 移动文件和文件夹的方法.等我研究一下再放新方法.学习学习~ 1.移动指定文件: Public Sub 移动文件() ...

  2. VBA遍历文件夹下文件文件实用源码

    '批量遍历文件夹下某类文件,并统计编号 Sub OpenAndClose()Dim MyFile As StringDim s As StringDim count As IntegerMyFile ...

  3. VBA遍历文件夹及子文件夹中所有文件

    VBA中遍历文件方法很多,但很多方法又有局限,DIR的方法很难遍历子文件夹文件.FileSearch方法在office 2007中MS把Application对象FileSearch方法删除了.所有我 ...

  4. Excel VBA选择文件、高容错性地打开文件

    VBA选择文件 Sub SelectFile() Dim FileName As Variant '打开文件对话框返回的文件名,是一个全路径文件名,其值也可能是False,因此类型为Variant D ...

  5. 用Excel VBA选择文件、打开文件

    介绍如何用VBA选择文件和用VBA打开文件. 点击打开文件会弹出一个windows文件打开对话框,在EXCEL中VBA怎么实现这个功能? Sub SelectFile()     Dim FileNa ...

  6. vba单元格批量赋值,EXCEL——VBA对文件夹下所有表格的特定单元格赋值

    image 不知道大家有没有遇到过这种情况,一个文件夹下有很多Excel文件,每个文件里面一个或多个表都有一个同样的单元格,比如自己的名字啊.生日啊之类的.这个时候如果要改动这个单元格的内容我们需要一 ...

  7. word vba遍历文件,打开另外word修改保存

    处理完数个word,回头一看,才发现前面代码把一个符号搞反了... 把大于等于与小于等于两符号,颠倒了位置...晕. 马上用vba处理一下. 把这些word放在D盘根目录.逐个遍历并打开,逐一修改保存 ...

  8. Excel VBA 批量操作文件,FileSystemObject 方式,避免文件名中的奇怪字符

    之前使用使用Dir批量获取指定文件夹下的excel文件的时候,出现了问题. 出现的问题是:文件名中的空格被替换成了**?**,导致打开文件的时候出现无法找到的情况. 使用FileSystemObjec ...

  9. Excel VBA - 操作文件

    操作文件有以下几个功能. 1. 获取文件的路径:当前的文件路径. 函数:thisworkbook.path Dim ipath, iname As String ipath = ThisWorkboo ...

最新文章

  1. iOS下JS与原生OC互相调用
  2. Windows设置共享文件夹并允许写入--windows shared folder write access
  3. 分析Android银行木马GM Bot的变异过程
  4. GC解释:收集器概述
  5. 大学生应当趁早谋划未来(二)--给表弟的建议
  6. HttpResponse对象
  7. 【渝粤教育】电大中专新媒体营销实务 (14)作业 题库
  8. 【metasploit】1 渗透测试与metasploit基础介绍 [PTES|msf|armitage安装]
  9. 雅虎被收购后,Tumblr 前途未卜,准备在所有博客中引入广告
  10. 【存储数据恢复】esx vmfs的互斥导致存储数据丢失的数据恢复案例
  11. 自制VOC2007数据集——train、trainval、val、test文件的生成
  12. 整理:卷积的直观理解、物理意义与本质(四)
  13. 安装mysql 配置环境变量
  14. ASCII码的了解及应用
  15. command-codes
  16. VS对数据库里表的查询
  17. 微生物组学测序十大错误认知
  18. C语言 day07 基础知识学习
  19. 安装 EndNote X 9.3.3
  20. 一封来自知乎的手机拍摄要领

热门文章

  1. 巨蟒python全栈开发flask5
  2. 【教训】rm -fr ./* 教训
  3. asp 下拉框二级联动
  4. 向ComboBox列表框中添加Enum的全部数据
  5. Sublime Text3自定义快捷键
  6. EJB分布式对象实现方式描述
  7. Vista SP1、IIS7,安装ASP.Net 1.1、VS2003、NetAdvantage 2004vol、Sql Server2000全攻略
  8. PPA格式Linux安装,Ubuntu12.04 用PPA安装fcitx和搜狗输入法附加组件Linux版
  9. 小程序云开发搜索功能的实现正则_码code | 如何借助小程序云开发实现小程序支付功能...
  10. java 文本排序_如何使用Java按最高编号对文本文件进行排序