选择系统分类的时候竟然找不到和VBA相关的,甚至连Office相关的项也没有,是不是因为这些方面太低级了很丢人哪。
下面简单说一下在用VBA开发的时候如何遍历某一目录中的文件,从而对其进行处理。
现实应用中,常常会遇到这样的情况,某个目录下有大量的Excel数据文件,现在需要对这些文件中的数据进行批量处理。现在的问题就来了,由于每次生成的数据文件名称都不固定,所以无法在程序中直接写死。其实通过VBA内置的Dir函数可以解决这一问题。
Sub DirTest() 
        Do 
                xlsName = Dir("D:\ExcelTest\*.xls") 
                If xlsName = "" Then 
                        Exit Do 
                End If 
                Workbooks.Open Filename:="D:\ExcelTest\" & xlsName 
                Workbooks(xlsName).Close savechanges:=False 
                Kill "D:\ExcelTest\" & xlsName 
        Loop 
End Sub
此处是假设需要处理的数据文件全部在“D:\ExcelTest\”目录下,实际应用中可根据情况更改。以下对此过程作一些简要说明。
1.先插入一个过程,并且加入Do……Loop循环,从而实现对所有的文件进行处理
2.定义一个变量xlsName(名称可根据自己爱好随便取,但建议是好记的名称,由于VBA可以不申明,直接使用,所以我这里偷懒,把定义的语句省略掉了,默认情况下执行是没有任何问题的。如果在VBA环境中设置了强制申明,则需要添加定义变量的语句)。
3.通过一个If……End If来判断,取得的文件名是否是空(如果为空,则说明文件处理完毕),如果为空,则退出循环。
4.打开取得的文件名对应的文件
5.对数据进行相应处理(这里并没有写这些语句,实际使用时可根据自己的情况添加数据处理的语句)
6.关闭刚打开的文件
7.删除已经处理过数据的文件(如果这些数据还有他用,建议将其备份,在打开文件后,使用SaveAS另存为也可。
8.过程结束。
如何查看Dir()函数更加详细的说明,可直接在VBA编辑器中输入Dir,右键点击Dir,然后在快捷菜单中选择“定义”,在打开的“对象浏览器”中,右键单击Dir,然后选择“帮助”,即可查看Dir的详细帮助及示例。
     本文转自windyli 51CTO博客,原文链接:http://blog.51cto.com/windyli/280988,如需转载请自行联系原作者

VBA中利用Dir遍历文件相关推荐

  1. [C#(WebForm)] - 利用递归遍历文件夹和文件存入TreeView

    主要函数:(具体实例在下面) //必须先引用命名空间:System.IO //使用relateTreeView函数时 path 路径使用本地路径,或经过Server.MapPath("服务器 ...

  2. VB/VBA中实现数据库与文件的存取

    编程完成数据库与文件的数据相互存取 'VB/VBA中实现数据库中的文件存取 '示例数据库为ACCESS数据库,用SQL数据库的话,只需要改连接字符串 ' '********************** ...

  3. 利用递归遍历文件夹和文件存入TreeView

    主要函数:(具体实例在下面) //必须先引用命名空间:System.IO //使用relateTreeView函数时 path 路径使用本地路径,或经过Server.MapPath("服务器 ...

  4. C++中利用WebService下载文件

    C#写的WebService读取文件到byte[]和读取文件内容到string,代码如下: [WebMethod] public byte[] dowloadFile() {     FileStre ...

  5. 在linux下给编辑文件在哪里设置密码,Linux中利用Vim对文件进行密码保护的方法详解...

    前言 Vim 是一种流行的.功能丰富的和高度可扩展的 Linux 文本编辑器,它的一个特殊功能便是支持用带密码各种的加密方法来加密文本文件. 本文中,我们将向你介绍一种简单的 Vim 使用技巧:在 L ...

  6. C++ 中利用 _findfirst遍历所有文件夹及文件,以及findnext win10报错解决办法

    C++中读取文件可以采用几个函数分别为,_findfirst._findnext._findclose.其中还要借助结构体 struct _finddata_t,_finddata_t主要用来存储各种 ...

  7. 利用shell遍历文件夹下所有文件

    例如你有一个文件夹路径是 /wls,如果想要遍历这个文件夹内的所有文件,并将它们保存到数组中,利用shell你可以这样做 for file in /wls/* doif test -f $fileth ...

  8. Spring中利用applicationContext.xml文件实例化对象和调用方法

    Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...

  9. MFC中利用CFileDialog选择文件并读取文件所遇到的问题和解决方法

    在用MFC编写一个上位机时,需要实现选择和读取一个二进制文件,本来以为很简单的但是在实现过程中遇到很多问题,所幸都一一解决,这里做一下记录. 首先在实现文件选择,在界面上设置一个按钮,并在点击事件函数 ...

最新文章

  1. python wget_python-如何获取wget下载的文件的文件名
  2. [pytorch][stepbystep]在pytorch上实现卷积神经网路(CNN)的裁剪(purning)
  3. nagios 监控NFS
  4. UTF-8 GBK 联系和区别
  5. Caused by SSLError(“Can‘t connect to HTTPS URL because the SSL module is not available)
  6. STM32通过串口如何接收服务器发来的数据
  7. 3.8 matlab函数参数与变量的作用域
  8. 自主可控芯片多路服务器,中国国防领域最高水准自主可控多单元服务器亮相
  9. matlab 检测gpu,康奈尔大学使用MATLAB进行GPU性能测试
  10. SQL Server 2014如何提升非在线的在线操作
  11. 【API进阶之路】用API打造一条自动化内容生产流水线
  12. 程序员的自我修养——读《软技能-代码之外的生存指南》笔记
  13. JDK1.8 HashMap 深入理解
  14. 进击的PM:作为产品总监,你需要具备什么样的能力?
  15. 《数据库技术原理与应用教程第2版》——3.6计算机世界与物理模型
  16. Linux统计进程网络,查看磁盘io、内存free、系统进程ps、网络状态netstat、Linux抓包tcpdump...
  17. 服务器android打包,Android rom解包打包工具
  18. MTK手机刷机包打包步骤
  19. 怎样恢复计算机程序打开文件名,Word提示如何解决使用文本恢复转换器打开文件的问题...
  20. js经纬度打开腾讯地图

热门文章

  1. 【原理】解析一致性哈希算法
  2. Gin实践 番外 Golang交叉编译
  3. 编写带对话框界面的OCX
  4. 【Android】Android6.0发送短信Demo
  5. 范例 在 Setting 里加入 HiApk Settings 选项
  6. 使用eclipse开发web需要搭建什么环境
  7. 怎么做才能将请求平摊到多台服务器上面去呢
  8. 判断 list 集合是否含有重复对象
  9. Mysql 面试常问4 -- 锁模块之事务并发访问产生的问题以及事务隔离机制 InnoDB支持事务
  10. golang 切片追加问题